From 5fa5ffb82a6bec6a7e04a8d2712b69e88ff9b259 Mon Sep 17 00:00:00 2001 From: Tobias Bosch Date: Tue, 4 Oct 2016 16:27:45 -0700 Subject: [PATCH] refactor(benchmarks): refactor to support AOT bootstrap in G3 (#12075) --- modules/benchmarks/src/bootstrap_plain.ts | 4 +- .../src/largetable/baseline/index.html | 8 +++- .../src/largetable/baseline/index.ts | 42 ++++++++++--------- .../benchmarks/src/largetable/ng2/index.html | 8 +++- .../benchmarks/src/largetable/ng2/index.ts | 40 +++--------------- modules/benchmarks/src/largetable/ng2/init.ts | 32 ++++++++++++++ .../src/largetable/ng2_switch/index.html | 8 +++- .../src/largetable/ng2_switch/index.ts | 40 +++--------------- .../src/largetable/ng2_switch/init.ts | 32 ++++++++++++++ .../benchmarks/src/tree/baseline/index.html | 8 +++- modules/benchmarks/src/tree/baseline/index.ts | 42 ++++++++++--------- modules/benchmarks/src/tree/ng2/index.html | 8 +++- modules/benchmarks/src/tree/ng2/index.ts | 40 +++--------------- modules/benchmarks/src/tree/ng2/init.ts | 32 ++++++++++++++ 14 files changed, 190 insertions(+), 154 deletions(-) create mode 100644 modules/benchmarks/src/largetable/ng2/init.ts create mode 100644 modules/benchmarks/src/largetable/ng2_switch/init.ts create mode 100644 modules/benchmarks/src/tree/ng2/init.ts diff --git a/modules/benchmarks/src/bootstrap_plain.ts b/modules/benchmarks/src/bootstrap_plain.ts index 2ea20a188c..b2c62c53ae 100644 --- a/modules/benchmarks/src/bootstrap_plain.ts +++ b/modules/benchmarks/src/bootstrap_plain.ts @@ -20,7 +20,9 @@ }); // BOOTSTRAP the app! - System.import('index').then(function(m: any) { m.main(); }, console.error.bind(console)); + System.import('index').then(function(m: any) { + m.main && m.main(); + }, console.error.bind(console)); } function writeScriptTag(scriptUrl: string, onload?: string) { diff --git a/modules/benchmarks/src/largetable/baseline/index.html b/modules/benchmarks/src/largetable/baseline/index.html index faf53dbce7..6c922ffe49 100644 --- a/modules/benchmarks/src/largetable/baseline/index.html +++ b/modules/benchmarks/src/largetable/baseline/index.html @@ -22,9 +22,13 @@

- + Loading...
- + \ No newline at end of file diff --git a/modules/benchmarks/src/largetable/baseline/index.ts b/modules/benchmarks/src/largetable/baseline/index.ts index d3458cd310..efbdae30cc 100644 --- a/modules/benchmarks/src/largetable/baseline/index.ts +++ b/modules/benchmarks/src/largetable/baseline/index.ts @@ -2,24 +2,28 @@ import {bindAction, profile} from '../../util'; import {buildTable, emptyTable} from '../util'; import {TableComponent} from './table'; -export function main() { - var table: TableComponent; +var table: TableComponent; - function destroyDom() { table.data = emptyTable; } - - function createDom() { table.data = buildTable(); } - - function noop() {} - - function init() { - table = new TableComponent(document.querySelector('largetable')); - - bindAction('#destroyDom', destroyDom); - bindAction('#createDom', createDom); - - bindAction('#updateDomProfile', profile(createDom, noop, 'update')); - bindAction('#createDomProfile', profile(createDom, destroyDom, 'create')); - } - - init(); +function destroyDom() { + table.data = emptyTable; } + +function createDom() { + table.data = buildTable(); +} + +function noop() {} + +function init() { + const rootEl = document.querySelector('largetable'); + rootEl.textContent = ''; + table = new TableComponent(rootEl); + + bindAction('#destroyDom', destroyDom); + bindAction('#createDom', createDom); + + bindAction('#updateDomProfile', profile(createDom, noop, 'update')); + bindAction('#createDomProfile', profile(createDom, destroyDom, 'create')); +} + +init(); diff --git a/modules/benchmarks/src/largetable/ng2/index.html b/modules/benchmarks/src/largetable/ng2/index.html index 37b72355b4..3842f86625 100644 --- a/modules/benchmarks/src/largetable/ng2/index.html +++ b/modules/benchmarks/src/largetable/ng2/index.html @@ -22,9 +22,13 @@

- + Loading...
- + diff --git a/modules/benchmarks/src/largetable/ng2/index.ts b/modules/benchmarks/src/largetable/ng2/index.ts index 2376daa976..60753688ae 100644 --- a/modules/benchmarks/src/largetable/ng2/index.ts +++ b/modules/benchmarks/src/largetable/ng2/index.ts @@ -1,40 +1,10 @@ -import {ApplicationRef, enableProdMode} from '@angular/core'; +import {enableProdMode} from '@angular/core'; import {platformBrowserDynamic} from '@angular/platform-browser-dynamic'; -import {bindAction, profile} from '../../util'; -import {buildTable, emptyTable} from '../util'; - -import {AppModule, TableComponent} from './table'; +import {init} from './init'; +import {AppModule} from './table'; export function main() { - var table: TableComponent; - var appRef: ApplicationRef; - - function destroyDom() { - table.data = emptyTable; - appRef.tick(); - } - - function createDom() { - table.data = buildTable(); - appRef.tick(); - } - - function noop() {} - - function init() { - enableProdMode(); - platformBrowserDynamic().bootstrapModule(AppModule).then((ref) => { - var injector = ref.injector; - appRef = injector.get(ApplicationRef); - - table = appRef.components[0].instance; - bindAction('#destroyDom', destroyDom); - bindAction('#createDom', createDom); - bindAction('#updateDomProfile', profile(createDom, noop, 'update')); - bindAction('#createDomProfile', profile(createDom, destroyDom, 'create')); - }); - } - - init(); + enableProdMode(); + platformBrowserDynamic().bootstrapModule(AppModule).then(init); } diff --git a/modules/benchmarks/src/largetable/ng2/init.ts b/modules/benchmarks/src/largetable/ng2/init.ts new file mode 100644 index 0000000000..ef9d6d1354 --- /dev/null +++ b/modules/benchmarks/src/largetable/ng2/init.ts @@ -0,0 +1,32 @@ +import {ApplicationRef, NgModuleRef} from '@angular/core'; + +import {bindAction, profile} from '../../util'; +import {buildTable, emptyTable} from '../util'; + +import {AppModule, TableComponent} from './table'; + +export function init(moduleRef: NgModuleRef) { + let table: TableComponent; + let appRef: ApplicationRef; + + function destroyDom() { + table.data = emptyTable; + appRef.tick(); + } + + function createDom() { + table.data = buildTable(); + appRef.tick(); + } + + function noop() {} + + const injector = moduleRef.injector; + appRef = injector.get(ApplicationRef); + + table = appRef.components[0].instance; + bindAction('#destroyDom', destroyDom); + bindAction('#createDom', createDom); + bindAction('#updateDomProfile', profile(createDom, noop, 'update')); + bindAction('#createDomProfile', profile(createDom, destroyDom, 'create')); +} diff --git a/modules/benchmarks/src/largetable/ng2_switch/index.html b/modules/benchmarks/src/largetable/ng2_switch/index.html index fdf0f45aaa..9cd629ebc2 100644 --- a/modules/benchmarks/src/largetable/ng2_switch/index.html +++ b/modules/benchmarks/src/largetable/ng2_switch/index.html @@ -22,9 +22,13 @@

- + Loading...
- + diff --git a/modules/benchmarks/src/largetable/ng2_switch/index.ts b/modules/benchmarks/src/largetable/ng2_switch/index.ts index 2376daa976..60753688ae 100644 --- a/modules/benchmarks/src/largetable/ng2_switch/index.ts +++ b/modules/benchmarks/src/largetable/ng2_switch/index.ts @@ -1,40 +1,10 @@ -import {ApplicationRef, enableProdMode} from '@angular/core'; +import {enableProdMode} from '@angular/core'; import {platformBrowserDynamic} from '@angular/platform-browser-dynamic'; -import {bindAction, profile} from '../../util'; -import {buildTable, emptyTable} from '../util'; - -import {AppModule, TableComponent} from './table'; +import {init} from './init'; +import {AppModule} from './table'; export function main() { - var table: TableComponent; - var appRef: ApplicationRef; - - function destroyDom() { - table.data = emptyTable; - appRef.tick(); - } - - function createDom() { - table.data = buildTable(); - appRef.tick(); - } - - function noop() {} - - function init() { - enableProdMode(); - platformBrowserDynamic().bootstrapModule(AppModule).then((ref) => { - var injector = ref.injector; - appRef = injector.get(ApplicationRef); - - table = appRef.components[0].instance; - bindAction('#destroyDom', destroyDom); - bindAction('#createDom', createDom); - bindAction('#updateDomProfile', profile(createDom, noop, 'update')); - bindAction('#createDomProfile', profile(createDom, destroyDom, 'create')); - }); - } - - init(); + enableProdMode(); + platformBrowserDynamic().bootstrapModule(AppModule).then(init); } diff --git a/modules/benchmarks/src/largetable/ng2_switch/init.ts b/modules/benchmarks/src/largetable/ng2_switch/init.ts new file mode 100644 index 0000000000..ef9d6d1354 --- /dev/null +++ b/modules/benchmarks/src/largetable/ng2_switch/init.ts @@ -0,0 +1,32 @@ +import {ApplicationRef, NgModuleRef} from '@angular/core'; + +import {bindAction, profile} from '../../util'; +import {buildTable, emptyTable} from '../util'; + +import {AppModule, TableComponent} from './table'; + +export function init(moduleRef: NgModuleRef) { + let table: TableComponent; + let appRef: ApplicationRef; + + function destroyDom() { + table.data = emptyTable; + appRef.tick(); + } + + function createDom() { + table.data = buildTable(); + appRef.tick(); + } + + function noop() {} + + const injector = moduleRef.injector; + appRef = injector.get(ApplicationRef); + + table = appRef.components[0].instance; + bindAction('#destroyDom', destroyDom); + bindAction('#createDom', createDom); + bindAction('#updateDomProfile', profile(createDom, noop, 'update')); + bindAction('#createDomProfile', profile(createDom, destroyDom, 'create')); +} diff --git a/modules/benchmarks/src/tree/baseline/index.html b/modules/benchmarks/src/tree/baseline/index.html index b531ca02ac..3bfb634097 100644 --- a/modules/benchmarks/src/tree/baseline/index.html +++ b/modules/benchmarks/src/tree/baseline/index.html @@ -19,9 +19,13 @@

- + Loading...
- + \ No newline at end of file diff --git a/modules/benchmarks/src/tree/baseline/index.ts b/modules/benchmarks/src/tree/baseline/index.ts index 045e5018c2..a17677a66d 100644 --- a/modules/benchmarks/src/tree/baseline/index.ts +++ b/modules/benchmarks/src/tree/baseline/index.ts @@ -2,24 +2,28 @@ import {bindAction, profile} from '../../util'; import {buildTree, emptyTree} from '../util'; import {TreeComponent} from './tree'; -export function main() { - var tree: TreeComponent; +var tree: TreeComponent; - function destroyDom() { tree.data = emptyTree; } - - function createDom() { tree.data = buildTree(); } - - function noop() {} - - function init() { - tree = new TreeComponent(document.querySelector('tree')); - - bindAction('#destroyDom', destroyDom); - bindAction('#createDom', createDom); - - bindAction('#updateDomProfile', profile(createDom, noop, 'update')); - bindAction('#createDomProfile', profile(createDom, destroyDom, 'create')); - } - - init(); +function destroyDom() { + tree.data = emptyTree; } + +function createDom() { + tree.data = buildTree(); +} + +function noop() {} + +function init() { + const rootEl = document.querySelector('tree'); + rootEl.textContent = ''; + tree = new TreeComponent(rootEl); + + bindAction('#destroyDom', destroyDom); + bindAction('#createDom', createDom); + + bindAction('#updateDomProfile', profile(createDom, noop, 'update')); + bindAction('#createDomProfile', profile(createDom, destroyDom, 'create')); +} + +init(); diff --git a/modules/benchmarks/src/tree/ng2/index.html b/modules/benchmarks/src/tree/ng2/index.html index e64dc34021..598f64fd1a 100644 --- a/modules/benchmarks/src/tree/ng2/index.html +++ b/modules/benchmarks/src/tree/ng2/index.html @@ -19,9 +19,13 @@

- + Loading...
- + diff --git a/modules/benchmarks/src/tree/ng2/index.ts b/modules/benchmarks/src/tree/ng2/index.ts index 7c8c66b441..46623a157e 100644 --- a/modules/benchmarks/src/tree/ng2/index.ts +++ b/modules/benchmarks/src/tree/ng2/index.ts @@ -1,40 +1,10 @@ -import {ApplicationRef, enableProdMode} from '@angular/core'; +import {enableProdMode} from '@angular/core'; import {platformBrowserDynamic} from '@angular/platform-browser-dynamic'; -import {bindAction, profile} from '../../util'; -import {buildTree, emptyTree} from '../util'; - -import {AppModule, TreeComponent} from './tree'; +import {init} from './init'; +import {AppModule} from './tree'; export function main() { - var tree: TreeComponent; - var appRef: ApplicationRef; - - function destroyDom() { - tree.data = emptyTree; - appRef.tick(); - } - - function createDom() { - tree.data = buildTree(); - appRef.tick(); - } - - function noop() {} - - function init() { - enableProdMode(); - platformBrowserDynamic().bootstrapModule(AppModule).then((ref) => { - var injector = ref.injector; - appRef = injector.get(ApplicationRef); - - tree = appRef.components[0].instance; - bindAction('#destroyDom', destroyDom); - bindAction('#createDom', createDom); - bindAction('#updateDomProfile', profile(createDom, noop, 'update')); - bindAction('#createDomProfile', profile(createDom, destroyDom, 'create')); - }); - } - - init(); + enableProdMode(); + platformBrowserDynamic().bootstrapModule(AppModule).then(init); } diff --git a/modules/benchmarks/src/tree/ng2/init.ts b/modules/benchmarks/src/tree/ng2/init.ts new file mode 100644 index 0000000000..d708fdbefb --- /dev/null +++ b/modules/benchmarks/src/tree/ng2/init.ts @@ -0,0 +1,32 @@ +import {ApplicationRef, NgModuleRef} from '@angular/core'; + +import {bindAction, profile} from '../../util'; +import {buildTree, emptyTree} from '../util'; + +import {AppModule, TreeComponent} from './tree'; + +export function init(moduleRef: NgModuleRef) { + let tree: TreeComponent; + let appRef: ApplicationRef; + + function destroyDom() { + tree.data = emptyTree; + appRef.tick(); + } + + function createDom() { + tree.data = buildTree(); + appRef.tick(); + } + + function noop() {} + + const injector = moduleRef.injector; + appRef = injector.get(ApplicationRef); + + tree = appRef.components[0].instance; + bindAction('#destroyDom', destroyDom); + bindAction('#createDom', createDom); + bindAction('#updateDomProfile', profile(createDom, noop, 'update')); + bindAction('#createDomProfile', profile(createDom, destroyDom, 'create')); +}