From b2596dd3024491be7a39c94c6d703dba2fa1539f Mon Sep 17 00:00:00 2001 From: Ian Riley Date: Wed, 3 Jun 2015 10:04:27 -0700 Subject: [PATCH] refactor(benchamrks_external): Ts'ify benchmarks_external Translates benchmarks_external to TypeScript. --- .../e2e_test/compiler_perf.dart | 3 + .../{compiler_perf.es6 => compiler_perf.ts} | 18 +-- .../e2e_test/largetable_perf.dart | 3 + .../e2e_test/largetable_perf.es6 | 40 ------ .../e2e_test/largetable_perf.ts | 24 ++++ .../e2e_test/naive_infinite_scroll_perf.dart | 3 + ...perf.es6 => naive_infinite_scroll_perf.ts} | 23 ++-- .../e2e_test/polymer_tree_perf.dart | 3 + .../e2e_test/polymer_tree_perf.es6 | 20 --- .../e2e_test/polymer_tree_perf.ts | 18 +++ .../e2e_test/react_tree_perf.dart | 3 + ...react_tree_perf.es6 => react_tree_perf.ts} | 18 +-- .../e2e_test/tree_perf.dart | 3 + .../e2e_test/tree_perf.es6 | 20 --- .../benchmarks_external/e2e_test/tree_perf.ts | 18 +++ .../src/compiler/compiler_benchmark.es6 | 96 -------------- .../src/compiler/compiler_benchmark.ts | 104 +++++++++++++++ .../src/largetable/largetable_benchmark.dart | 1 + .../src/largetable/largetable_benchmark.es6 | 119 ----------------- .../src/largetable/largetable_benchmark.ts | 120 ++++++++++++++++++ .../src/tree/react/index.dart | 1 + .../src/tree/react/{index.es6 => index.ts} | 49 +++---- .../src/tree/tree_benchmark.es6 | 102 --------------- .../src/tree/tree_benchmark.ts | 98 ++++++++++++++ 24 files changed, 441 insertions(+), 466 deletions(-) create mode 100644 modules/benchmarks_external/e2e_test/compiler_perf.dart rename modules/benchmarks_external/e2e_test/{compiler_perf.es6 => compiler_perf.ts} (53%) create mode 100644 modules/benchmarks_external/e2e_test/largetable_perf.dart delete mode 100644 modules/benchmarks_external/e2e_test/largetable_perf.es6 create mode 100644 modules/benchmarks_external/e2e_test/largetable_perf.ts create mode 100644 modules/benchmarks_external/e2e_test/naive_infinite_scroll_perf.dart rename modules/benchmarks_external/e2e_test/{naive_infinite_scroll_perf.es6 => naive_infinite_scroll_perf.ts} (54%) create mode 100644 modules/benchmarks_external/e2e_test/polymer_tree_perf.dart delete mode 100644 modules/benchmarks_external/e2e_test/polymer_tree_perf.es6 create mode 100644 modules/benchmarks_external/e2e_test/polymer_tree_perf.ts create mode 100644 modules/benchmarks_external/e2e_test/react_tree_perf.dart rename modules/benchmarks_external/e2e_test/{react_tree_perf.es6 => react_tree_perf.ts} (53%) create mode 100644 modules/benchmarks_external/e2e_test/tree_perf.dart delete mode 100644 modules/benchmarks_external/e2e_test/tree_perf.es6 create mode 100644 modules/benchmarks_external/e2e_test/tree_perf.ts delete mode 100644 modules/benchmarks_external/src/compiler/compiler_benchmark.es6 create mode 100644 modules/benchmarks_external/src/compiler/compiler_benchmark.ts create mode 100644 modules/benchmarks_external/src/largetable/largetable_benchmark.dart delete mode 100644 modules/benchmarks_external/src/largetable/largetable_benchmark.es6 create mode 100644 modules/benchmarks_external/src/largetable/largetable_benchmark.ts create mode 100644 modules/benchmarks_external/src/tree/react/index.dart rename modules/benchmarks_external/src/tree/react/{index.es6 => index.ts} (51%) delete mode 100644 modules/benchmarks_external/src/tree/tree_benchmark.es6 create mode 100644 modules/benchmarks_external/src/tree/tree_benchmark.ts diff --git a/modules/benchmarks_external/e2e_test/compiler_perf.dart b/modules/benchmarks_external/e2e_test/compiler_perf.dart new file mode 100644 index 0000000000..a21ac5eb91 --- /dev/null +++ b/modules/benchmarks_external/e2e_test/compiler_perf.dart @@ -0,0 +1,3 @@ +library benchmarks_external.e2e_test.compiler_perf; + +main() {} diff --git a/modules/benchmarks_external/e2e_test/compiler_perf.es6 b/modules/benchmarks_external/e2e_test/compiler_perf.ts similarity index 53% rename from modules/benchmarks_external/e2e_test/compiler_perf.es6 rename to modules/benchmarks_external/e2e_test/compiler_perf.ts index 93b83ebde8..df99e61b54 100644 --- a/modules/benchmarks_external/e2e_test/compiler_perf.es6 +++ b/modules/benchmarks_external/e2e_test/compiler_perf.ts @@ -1,30 +1,26 @@ -var perfUtil = require('angular2/src/test_lib/perf_util'); +import {runClickBenchmark, verifyNoBrowserErrors} from 'angular2/src/test_lib/perf_util'; -describe('ng1.x compiler benchmark', function () { +describe('ng1.x compiler benchmark', function() { var URL = 'benchmarks_external/src/compiler/compiler_benchmark.html'; - afterEach(perfUtil.verifyNoBrowserErrors); + afterEach(verifyNoBrowserErrors); it('should log withBinding stats', function(done) { - perfUtil.runClickBenchmark({ + runClickBenchmark({ url: URL, buttons: ['#compileWithBindings'], id: 'ng1.compile.withBindings', - params: [{ - name: 'elements', value: 150, scale: 'linear' - }] + params: [{name: 'elements', value: 150, scale: 'linear'}] }).then(done, done.fail); }); it('should log noBindings stats', function(done) { - perfUtil.runClickBenchmark({ + runClickBenchmark({ url: URL, buttons: ['#compileNoBindings'], id: 'ng1.compile.noBindings', - params: [{ - name: 'elements', value: 150, scale: 'linear' - }] + params: [{name: 'elements', value: 150, scale: 'linear'}] }).then(done, done.fail); }); diff --git a/modules/benchmarks_external/e2e_test/largetable_perf.dart b/modules/benchmarks_external/e2e_test/largetable_perf.dart new file mode 100644 index 0000000000..6a620017af --- /dev/null +++ b/modules/benchmarks_external/e2e_test/largetable_perf.dart @@ -0,0 +1,3 @@ +library benchmarks_external.e2e_test.largetable_perf; + +main() {} diff --git a/modules/benchmarks_external/e2e_test/largetable_perf.es6 b/modules/benchmarks_external/e2e_test/largetable_perf.es6 deleted file mode 100644 index 971e92f5f7..0000000000 --- a/modules/benchmarks_external/e2e_test/largetable_perf.es6 +++ /dev/null @@ -1,40 +0,0 @@ -var perfUtil = require('angular2/src/test_lib/perf_util'); - -describe('ng1.x largetable benchmark', function () { - var URL = 'benchmarks_external/src/largetable/largetable_benchmark.html'; - - afterEach(perfUtil.verifyNoBrowserErrors); - - [ - 'baselineBinding', - 'baselineInterpolation', - 'ngBind', - 'ngBindOnce', - 'interpolation', - 'interpolationAttr', - 'ngBindFn', - 'interpolationFn', - 'ngBindFilter', - 'interpolationFilter' - ].forEach(function(benchmarkType) { - it('should log the stats with: ' + benchmarkType, function(done) { - perfUtil.runClickBenchmark({ - url: URL, - buttons: ['#destroyDom', '#createDom'], - id: 'ng1.largetable.' + benchmarkType, - params: [{ - name: 'columns', - value: 100, - scale: 'sqrt' - },{ - name: 'rows', - value: 20, - scale: 'sqrt' - },{ - name: 'benchmarkType', - value: benchmarkType - }] - }).then(done, done.fail); - }); - }); -}); diff --git a/modules/benchmarks_external/e2e_test/largetable_perf.ts b/modules/benchmarks_external/e2e_test/largetable_perf.ts new file mode 100644 index 0000000000..4fcaf491d4 --- /dev/null +++ b/modules/benchmarks_external/e2e_test/largetable_perf.ts @@ -0,0 +1,24 @@ +import {runClickBenchmark, verifyNoBrowserErrors} from 'angular2/src/test_lib/perf_util'; + +describe('ng1.x largetable benchmark', function() { + var URL = 'benchmarks_external/src/largetable/largetable_benchmark.html'; + + afterEach(verifyNoBrowserErrors); + + ['baselineBinding', 'baselineInterpolation', 'ngBind', 'ngBindOnce', 'interpolation', + 'interpolationAttr', 'ngBindFn', 'interpolationFn', 'ngBindFilter', 'interpolationFilter'] + .forEach(function(benchmarkType) { + it('should log the stats with: ' + benchmarkType, function(done) { + runClickBenchmark({ + url: URL, + buttons: ['#destroyDom', '#createDom'], + id: 'ng1.largetable.' + benchmarkType, + params: [ + {name: 'columns', value: 100, scale: 'sqrt'}, + {name: 'rows', value: 20, scale: 'sqrt'}, + {name: 'benchmarkType', value: benchmarkType} + ] + }).then(done, done.fail); + }); + }); +}); diff --git a/modules/benchmarks_external/e2e_test/naive_infinite_scroll_perf.dart b/modules/benchmarks_external/e2e_test/naive_infinite_scroll_perf.dart new file mode 100644 index 0000000000..f65d170c5d --- /dev/null +++ b/modules/benchmarks_external/e2e_test/naive_infinite_scroll_perf.dart @@ -0,0 +1,3 @@ +library benchmarks_external.e2e_test.naive_infinite_scroll_perf; + +main() {} diff --git a/modules/benchmarks_external/e2e_test/naive_infinite_scroll_perf.es6 b/modules/benchmarks_external/e2e_test/naive_infinite_scroll_perf.ts similarity index 54% rename from modules/benchmarks_external/e2e_test/naive_infinite_scroll_perf.es6 rename to modules/benchmarks_external/e2e_test/naive_infinite_scroll_perf.ts index 1538f35465..630a64aead 100644 --- a/modules/benchmarks_external/e2e_test/naive_infinite_scroll_perf.es6 +++ b/modules/benchmarks_external/e2e_test/naive_infinite_scroll_perf.ts @@ -1,15 +1,14 @@ -var perfUtil = require('angular2/src/test_lib/perf_util'); +import {runBenchmark, verifyNoBrowserErrors} from 'angular2/src/test_lib/perf_util'; -describe('ng-dart1.x naive infinite scroll benchmark', function () { +describe('ng-dart1.x naive infinite scroll benchmark', function() { var URL = 'benchmarks_external/src/naive_infinite_scroll/index.html'; - afterEach(perfUtil.verifyNoBrowserErrors); + afterEach(verifyNoBrowserErrors); [1, 2, 4].forEach(function(appSize) { - it('should run scroll benchmark and collect stats for appSize = ' + - appSize, function(done) { - perfUtil.runBenchmark({ + it('should run scroll benchmark and collect stats for appSize = ' + appSize, function(done) { + runBenchmark({ url: URL, id: 'ng1-dart1.x.naive_infinite_scroll', work: function() { @@ -21,13 +20,11 @@ describe('ng-dart1.x naive infinite scroll benchmark', function () { } browser.sleep(s); }, - params: [{ - name: 'appSize', value: appSize - }, { - name: 'iterationCount', value: 20, scale: 'linear' - }, { - name: 'scrollIncrement', value: 40 - }] + params: [ + {name: 'appSize', value: appSize}, + {name: 'iterationCount', value: 20, scale: 'linear'}, + {name: 'scrollIncrement', value: 40} + ] }).then(done, done.fail); }); }); diff --git a/modules/benchmarks_external/e2e_test/polymer_tree_perf.dart b/modules/benchmarks_external/e2e_test/polymer_tree_perf.dart new file mode 100644 index 0000000000..a86d7c6394 --- /dev/null +++ b/modules/benchmarks_external/e2e_test/polymer_tree_perf.dart @@ -0,0 +1,3 @@ +library benchmarks_external.e2e_test.polymer_tree_perf; + +main() {} diff --git a/modules/benchmarks_external/e2e_test/polymer_tree_perf.es6 b/modules/benchmarks_external/e2e_test/polymer_tree_perf.es6 deleted file mode 100644 index d471010d8e..0000000000 --- a/modules/benchmarks_external/e2e_test/polymer_tree_perf.es6 +++ /dev/null @@ -1,20 +0,0 @@ -var perfUtil = require('angular2/src/test_lib/perf_util'); - -describe('polymer tree benchmark', function () { - - var URL = 'benchmarks_external/src/tree/polymer/index.html'; - - afterEach(perfUtil.verifyNoBrowserErrors); - - it('should log the stats', function(done) { - perfUtil.runClickBenchmark({ - url: URL, - buttons: ['#destroyDom', '#createDom'], - id: 'polymer.tree', - params: [{ - name: 'depth', value: 9, scale: 'log2' - }] - }).then(done, done.fail); - }); - -}); diff --git a/modules/benchmarks_external/e2e_test/polymer_tree_perf.ts b/modules/benchmarks_external/e2e_test/polymer_tree_perf.ts new file mode 100644 index 0000000000..85e3d44e66 --- /dev/null +++ b/modules/benchmarks_external/e2e_test/polymer_tree_perf.ts @@ -0,0 +1,18 @@ +import {runClickBenchmark, verifyNoBrowserErrors} from 'angular2/src/test_lib/perf_util'; + +describe('polymer tree benchmark', function() { + + var URL = 'benchmarks_external/src/tree/polymer/index.html'; + + afterEach(verifyNoBrowserErrors); + + it('should log the stats', function(done) { + runClickBenchmark({ + url: URL, + buttons: ['#destroyDom', '#createDom'], + id: 'polymer.tree', + params: [{name: 'depth', value: 9, scale: 'log2'}] + }).then(done, done.fail); + }); + +}); diff --git a/modules/benchmarks_external/e2e_test/react_tree_perf.dart b/modules/benchmarks_external/e2e_test/react_tree_perf.dart new file mode 100644 index 0000000000..9a9a620a11 --- /dev/null +++ b/modules/benchmarks_external/e2e_test/react_tree_perf.dart @@ -0,0 +1,3 @@ +library benchmarks_external.e2e_test.react_tree_perf; + +main() {} diff --git a/modules/benchmarks_external/e2e_test/react_tree_perf.es6 b/modules/benchmarks_external/e2e_test/react_tree_perf.ts similarity index 53% rename from modules/benchmarks_external/e2e_test/react_tree_perf.es6 rename to modules/benchmarks_external/e2e_test/react_tree_perf.ts index c90e144df4..496de81174 100644 --- a/modules/benchmarks_external/e2e_test/react_tree_perf.es6 +++ b/modules/benchmarks_external/e2e_test/react_tree_perf.ts @@ -1,30 +1,26 @@ -var perfUtil = require('angular2/src/test_lib/perf_util'); +import {runClickBenchmark, verifyNoBrowserErrors} from 'angular2/src/test_lib/perf_util'; -describe('react tree benchmark', function () { +describe('react tree benchmark', function() { var URL = 'benchmarks_external/src/tree/react/index.html'; - afterEach(perfUtil.verifyNoBrowserErrors); + afterEach(verifyNoBrowserErrors); it('should log the stats (create)', function(done) { - perfUtil.runClickBenchmark({ + runClickBenchmark({ url: URL, buttons: ['#destroyDom', '#createDom'], id: 'react.tree.create', - params: [{ - name: 'depth', value: 9, scale: 'log2' - }] + params: [{name: 'depth', value: 9, scale: 'log2'}] }).then(done, done.fail); }); it('should log the stats (update)', function(done) { - perfUtil.runClickBenchmark({ + runClickBenchmark({ url: URL, buttons: ['#createDom'], id: 'react.tree.update', - params: [{ - name: 'depth', value: 9, scale: 'log2' - }] + params: [{name: 'depth', value: 9, scale: 'log2'}] }).then(done, done.fail); }); diff --git a/modules/benchmarks_external/e2e_test/tree_perf.dart b/modules/benchmarks_external/e2e_test/tree_perf.dart new file mode 100644 index 0000000000..7a5ca59fc9 --- /dev/null +++ b/modules/benchmarks_external/e2e_test/tree_perf.dart @@ -0,0 +1,3 @@ +library benchmarks_external.e2e_test.tree_perf; + +main() {} diff --git a/modules/benchmarks_external/e2e_test/tree_perf.es6 b/modules/benchmarks_external/e2e_test/tree_perf.es6 deleted file mode 100644 index 153c88bec2..0000000000 --- a/modules/benchmarks_external/e2e_test/tree_perf.es6 +++ /dev/null @@ -1,20 +0,0 @@ -var perfUtil = require('angular2/src/test_lib/perf_util'); - -describe('ng1.x tree benchmark', function () { - - var URL = 'benchmarks_external/src/tree/tree_benchmark.html'; - - afterEach(perfUtil.verifyNoBrowserErrors); - - it('should log the stats', function(done) { - perfUtil.runClickBenchmark({ - url: URL, - buttons: ['#destroyDom', '#createDom'], - id: 'ng1.tree', - params: [{ - name: 'depth', value: 9, scale: 'log2' - }] - }).then(done, done.fail); - }); - -}); diff --git a/modules/benchmarks_external/e2e_test/tree_perf.ts b/modules/benchmarks_external/e2e_test/tree_perf.ts new file mode 100644 index 0000000000..aae6200bfb --- /dev/null +++ b/modules/benchmarks_external/e2e_test/tree_perf.ts @@ -0,0 +1,18 @@ +import {runClickBenchmark, verifyNoBrowserErrors} from 'angular2/src/test_lib/perf_util'; + +describe('ng1.x tree benchmark', function() { + + var URL = 'benchmarks_external/src/tree/tree_benchmark.html'; + + afterEach(verifyNoBrowserErrors); + + it('should log the stats', function(done) { + runClickBenchmark({ + url: URL, + buttons: ['#destroyDom', '#createDom'], + id: 'ng1.tree', + params: [{name: 'depth', value: 9, scale: 'log2'}] + }).then(done, done.fail); + }); + +}); diff --git a/modules/benchmarks_external/src/compiler/compiler_benchmark.es6 b/modules/benchmarks_external/src/compiler/compiler_benchmark.es6 deleted file mode 100644 index e4a60b311b..0000000000 --- a/modules/benchmarks_external/src/compiler/compiler_benchmark.es6 +++ /dev/null @@ -1,96 +0,0 @@ -// compiler benchmark in AngularJS 1.x -import {getIntParameter, bindAction} from 'angular2/src/test_lib/benchmark_util'; - -export function main() { - var ngEl = document.createElement('div'); - angular.bootstrap(ngEl, ['app']); -} - -function loadTemplate(templateId, repeatCount) { - var template = document.querySelectorAll(`#${templateId}`)[0]; - var content = template.innerHTML; - var result = ''; - for (var i=0; i elements... - var div = document.createElement('div'); - div.innerHTML = result; - return div; -} - -angular.module('app', []) -.directive('dir0', ['$parse', function($parse) { - return { - compile: function($element, $attrs) { - var expr = $parse($attrs.attr0); - return function($scope) { - $scope.$watch(expr, angular.noop); - } - } - }; -}]) -.directive('dir1', ['$parse', function($parse) { - return { - compile: function($element, $attrs) { - var expr = $parse($attrs.attr1); - return function($scope) { - $scope.$watch(expr, angular.noop); - } - } - }; -}]) -.directive('dir2', ['$parse', function($parse) { - return { - compile: function($element, $attrs) { - var expr = $parse($attrs.attr2); - return function($scope) { - $scope.$watch(expr, angular.noop); - } - } - }; -}]) -.directive('dir3', ['$parse', function($parse) { - return { - compile: function($element, $attrs) { - var expr = $parse($attrs.attr3); - return function($scope) { - $scope.$watch(expr, angular.noop); - } - } - }; -}]) -.directive('dir4', ['$parse', function($parse) { - return { - compile: function($element, $attrs) { - var expr = $parse($attrs.attr4); - return function($scope) { - $scope.$watch(expr, angular.noop); - } - } - }; -}]) -.run(['$compile', function($compile) { - var count = getIntParameter('elements'); - var templateNoBindings = loadTemplate('templateNoBindings', count); - var templateWithBindings = loadTemplate('templateWithBindings', count); - - bindAction('#compileWithBindings', compileWithBindings); - bindAction('#compileNoBindings', compileNoBindings); - - function compileNoBindings() { - // Need to clone every time as the compiler might modify the template! - var cloned = templateNoBindings.cloneNode(true); - $compile(cloned); - } - - function compileWithBindings() { - // Need to clone every time as the compiler might modify the template! - var cloned = templateWithBindings.cloneNode(true); - $compile(cloned); - } -}]); - diff --git a/modules/benchmarks_external/src/compiler/compiler_benchmark.ts b/modules/benchmarks_external/src/compiler/compiler_benchmark.ts new file mode 100644 index 0000000000..a23400f320 --- /dev/null +++ b/modules/benchmarks_external/src/compiler/compiler_benchmark.ts @@ -0,0 +1,104 @@ +// compiler benchmark in AngularJS 1.x +import {getIntParameter, bindAction} from 'angular2/src/test_lib/benchmark_util'; +import angular = require("angular"); + +export function main() { + var ngEl = document.createElement('div'); + angular.bootstrap(ngEl, ['app']); +} + +function loadTemplate(templateId, repeatCount) { + var template = document.querySelectorAll(`#${templateId}`)[0]; + var content = template.innerHTML; + var result = ''; + for (var i = 0; i < repeatCount; i++) { + result += content; + } + // replace [] binding syntax + result = result.replace(/[\[\]]/g, ''); + + // Use a DIV as container as Angular 1.3 does not know