.then((ref) => { var injector = ref.injector; var app: AppComponent = ref.instance; var appRef = injector.get(ApplicationRef); bindAction('#reset', function() { app.reset(); appRef.tick(); }); // Baseline (plain components) bindAction('#createPlainComponents', function() { app.createPlainComponents(); appRef.tick(); }); // Components with decorators bindAction('#createComponentsWithDirectives', function() { app.createComponentsWithDirectives(); appRef.tick(); }); // Components with decorators bindAction('#createDynamicComponents', function() { app.createDynamicComponents(); appRef.tick(); }); });
platformBrowserDynamic().bootstrapModule(AppModule).then((ref) => { const injector = ref.injector; const app: AppComponent = ref.instance; const appRef = injector.get(ApplicationRef); bindAction('#reset', function() { app.reset(); appRef.tick(); }); // Baseline (plain components) bindAction('#createPlainComponents', function() { app.createPlainComponents(); appRef.tick(); }); // Components with decorators bindAction('#createComponentsWithDirectives', function() { app.createComponentsWithDirectives(); appRef.tick(); }); // Components with decorators bindAction('#createDynamicComponents', function() { app.createDynamicComponents(); appRef.tick(); }); });
export function main() { BrowserDomAdapter.makeCurrent(); var count = getIntParameter('selectors'); var fixedMatcher; var fixedSelectorStrings = []; var fixedSelectors = []; for (var i = 0; i < count; i++) { fixedSelectorStrings.push(randomSelector()); } for (var i = 0; i < count; i++) { fixedSelectors.push(CssSelector.parse(fixedSelectorStrings[i])); } fixedMatcher = new SelectorMatcher(); for (var i = 0; i < count; i++) { fixedMatcher.addSelectables(fixedSelectors[i], i); } function parse() { var result = []; for (var i = 0; i < count; i++) { result.push(CssSelector.parse(fixedSelectorStrings[i])); } return result; } function addSelectable() { var matcher = new SelectorMatcher(); for (var i = 0; i < count; i++) { matcher.addSelectables(fixedSelectors[i], i); } return matcher; } function match() { var matchCount = 0; for (var i = 0; i < count; i++) { fixedMatcher.match(fixedSelectors[i][0], (selector, selected) => { matchCount += selected; }); } return matchCount; } bindAction('#parse', parse); bindAction('#addSelectable', addSelectable); bindAction('#match', match); }
function($rootScope) { let count = 0; const maxDepth = getIntParameter('depth'); bindAction('#destroyDom', destroyDom); bindAction('#createDom', createDom); function destroyDom() { $rootScope.$apply(function() { $rootScope.initData = new TreeNode('', null, null); }); } function createDom() { const values = count++ % 2 == 0 ? ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '*'] : ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', '-']; $rootScope.$apply(function() { $rootScope.initData = buildTree(maxDepth, values, 0); }); } }
constructor() { let appSize = getIntParameter('appSize'); this.iterationCount = getIntParameter('iterationCount'); this.scrollIncrement = getIntParameter('scrollIncrement'); appSize = appSize > 1 ? appSize - 1 : 0; // draw at least one table this.scrollAreas = []; for (let i = 0; i < appSize; i++) { this.scrollAreas.push(i); } bindAction('#run-btn', () => { this.runBenchmark(); }); bindAction('#reset-btn', () => { this._getScrollDiv().scrollTop = 0; const existingMarker = this._locateFinishedMarker(); if (existingMarker != null) { DOM.removeChild(document.body, existingMarker); } }); }
export function main() { var count = 0; var maxDepth = getIntParameter('depth'); bindAction('#destroyDom', destroyDom); bindAction('#createDom', createDom); var empty = new TreeNode(0, null, null); var rootComponent = React.render(React.createElement(TreeComponent, {treeNode: empty}, ""), document.getElementById('rootTree')); function destroyDom() { rootComponent.setProps({treeNode: empty}); } function createDom() { var values = count++ % 2 == 0 ? ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '*'] : ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', '-']; rootComponent.setProps({treeNode: buildTree(maxDepth, values, 0)}); } }
function($rootScope) { var count = 0; $rootScope.initData = null; bindAction('#destroyDom', destroyDom); bindAction('#createDom', createDom); function createData(): TreeNode { var values = count++ % 2 == 0 ? ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '*'] : ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', '-']; return buildTree(MAX_DEPTH, values, 0); } function destroyDom() { $rootScope.$apply(function() { $rootScope.initData = null; }); } function createDom() { $rootScope.$apply(function() { $rootScope.initData = createData(); }); } }
function($scope) { bindAction('#destroyDom', destroyDom); bindAction('#createDom', createDom); function destroyDom() { $scope.$apply(function() { $scope.benchmarkType = 'none'; }); } function createDom() { $scope.$apply(function() { $scope.benchmarkType = benchmarkType; }); } var data = $scope.data = []; function iGetter() { return this.i; } function jGetter() { return this.j; } for (var i = 0; i < totalRows; i++) { data[i] = []; for (var j = 0; j < totalColumns; j++) { data[i][j] = {i: i, j: j, iFn: iGetter, jFn: jGetter}; } } })
export function main() { BrowserDomAdapter.makeCurrent(); var iterations = getIntParameter('iterations'); // This benchmark does not use bootstrap and needs to create a reflector setupReflector(); var bindings = [A, B, C, D, E]; var injector = ReflectiveInjector.resolveAndCreate(bindings); var D_KEY = ReflectiveKey.get(D); var E_KEY = ReflectiveKey.get(E); var childInjector = injector.resolveAndCreateChild([]) .resolveAndCreateChild([]) .resolveAndCreateChild([]) .resolveAndCreateChild([]) .resolveAndCreateChild([]); var variousProviders = [A, {provide: B, useClass: C}, [D, [E]], {provide: F, useValue: 6}]; var variousProvidersResolved = ReflectiveInjector.resolve(variousProviders); function getByToken() { for (var i = 0; i < iterations; ++i) { injector.get(D); injector.get(E); } } function getByKey() { for (var i = 0; i < iterations; ++i) { injector.get(D_KEY); injector.get(E_KEY); } } function getChild() { for (var i = 0; i < iterations; ++i) { childInjector.get(D); childInjector.get(E); } } function instantiate() { for (var i = 0; i < iterations; ++i) { var child = injector.resolveAndCreateChild([E]); child.get(E); } } /** * Creates an injector with a variety of provider types. */ function createVariety() { for (var i = 0; i < iterations; ++i) { ReflectiveInjector.resolveAndCreate(variousProviders); } } /** * Same as [createVariety] but resolves providers ahead of time. */ function createVarietyResolved() { for (var i = 0; i < iterations; ++i) { ReflectiveInjector.fromResolvedProviders(variousProvidersResolved); } } bindAction('#getByToken', () => microBenchmark('injectAvg', iterations, getByToken)); bindAction('#getByKey', () => microBenchmark('injectAvg', iterations, getByKey)); bindAction('#getChild', () => microBenchmark('injectAvg', iterations, getChild)); bindAction('#instantiate', () => microBenchmark('injectAvg', iterations, instantiate)); bindAction('#createVariety', () => microBenchmark('injectAvg', iterations, createVariety)); bindAction( '#createVarietyResolved', () => microBenchmark('injectAvg', iterations, createVarietyResolved)); }