diff --git a/modules/@angular/compiler-cli/integrationtest/benchmarks/README.md b/modules/@angular/compiler-cli/integrationtest/benchmarks/README.md new file mode 100644 index 0000000000..14e69f8ff6 --- /dev/null +++ b/modules/@angular/compiler-cli/integrationtest/benchmarks/README.md @@ -0,0 +1,6 @@ +# Overview + +This folder will be filled with the benchmark sources +so that we can do offline compilation for them. + + diff --git a/modules/@angular/compiler-cli/integrationtest/tsconfig.json b/modules/@angular/compiler-cli/integrationtest/tsconfig.json index 01090a2570..054b56c206 100644 --- a/modules/@angular/compiler-cli/integrationtest/tsconfig.json +++ b/modules/@angular/compiler-cli/integrationtest/tsconfig.json @@ -15,5 +15,15 @@ "declaration": true, "lib": ["es6", "dom"], "baseUrl": "." - } + }, + + "files": [ + "src/module", + "src/bootstrap", + "test/all_spec", + "benchmarks/src/tree/ng2/index_aot.ts", + "benchmarks/src/tree/ng2_switch/index_aot.ts", + "benchmarks/src/largetable/ng2/index_aot.ts", + "benchmarks/src/largetable/ng2_switch/index_aot.ts" + ] } diff --git a/modules/benchmarks/README.md b/modules/benchmarks/README.md index acc3ec72a4..266e7a0a51 100644 --- a/modules/benchmarks/README.md +++ b/modules/benchmarks/README.md @@ -22,3 +22,8 @@ $ ./node_modules/.bin/protractor protractor-perf.conf.js --specs=dist/all/benchm Options for protractor with `protractor-perf.conf.js`: - `--bundles=true`: use prebuilt bundles - `--ng-help`: show all available options + +## Compile *_aot.ts files + +These files are compiled as part of the compiler_cli integration tests. +See `@angular/compile_cli/integrationtest/tsconfig.json` diff --git a/modules/benchmarks/src/largetable/ng2/index_aot.ts b/modules/benchmarks/src/largetable/ng2/index_aot.ts new file mode 100644 index 0000000000..9c4e49de2e --- /dev/null +++ b/modules/benchmarks/src/largetable/ng2/index_aot.ts @@ -0,0 +1,8 @@ +import {enableProdMode} from '@angular/core'; +import {platformBrowser} from '@angular/platform-browser'; + +import {init} from './init'; +import {AppModuleNgFactory} from './table.ngfactory'; + +enableProdMode(); +platformBrowser().bootstrapModuleFactory(AppModuleNgFactory).then(init); diff --git a/modules/benchmarks/src/largetable/ng2_switch/index_aot.ts b/modules/benchmarks/src/largetable/ng2_switch/index_aot.ts new file mode 100644 index 0000000000..9c4e49de2e --- /dev/null +++ b/modules/benchmarks/src/largetable/ng2_switch/index_aot.ts @@ -0,0 +1,8 @@ +import {enableProdMode} from '@angular/core'; +import {platformBrowser} from '@angular/platform-browser'; + +import {init} from './init'; +import {AppModuleNgFactory} from './table.ngfactory'; + +enableProdMode(); +platformBrowser().bootstrapModuleFactory(AppModuleNgFactory).then(init); diff --git a/modules/benchmarks/src/tree/ng2/index_aot.ts b/modules/benchmarks/src/tree/ng2/index_aot.ts new file mode 100644 index 0000000000..27f907ed17 --- /dev/null +++ b/modules/benchmarks/src/tree/ng2/index_aot.ts @@ -0,0 +1,8 @@ +import {enableProdMode} from '@angular/core'; +import {platformBrowser} from '@angular/platform-browser'; + +import {init} from './init'; +import {AppModuleNgFactory} from './tree.ngfactory'; + +enableProdMode(); +platformBrowser().bootstrapModuleFactory(AppModuleNgFactory).then(init); diff --git a/modules/benchmarks/src/tree/ng2_switch/index.ts b/modules/benchmarks/src/tree/ng2_switch/index.ts index dd38964858..46623a157e 100644 --- a/modules/benchmarks/src/tree/ng2_switch/index.ts +++ b/modules/benchmarks/src/tree/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 {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) => { - const 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_switch/index_aot.ts b/modules/benchmarks/src/tree/ng2_switch/index_aot.ts new file mode 100644 index 0000000000..27f907ed17 --- /dev/null +++ b/modules/benchmarks/src/tree/ng2_switch/index_aot.ts @@ -0,0 +1,8 @@ +import {enableProdMode} from '@angular/core'; +import {platformBrowser} from '@angular/platform-browser'; + +import {init} from './init'; +import {AppModuleNgFactory} from './tree.ngfactory'; + +enableProdMode(); +platformBrowser().bootstrapModuleFactory(AppModuleNgFactory).then(init); diff --git a/modules/benchmarks/src/tree/ng2_switch/init.ts b/modules/benchmarks/src/tree/ng2_switch/init.ts new file mode 100644 index 0000000000..280c9b0ca3 --- /dev/null +++ b/modules/benchmarks/src/tree/ng2_switch/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) { + var tree: TreeComponent; + var 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')); +} diff --git a/modules/tsconfig.json b/modules/tsconfig.json index 550608e1d4..955827b3f6 100644 --- a/modules/tsconfig.json +++ b/modules/tsconfig.json @@ -27,6 +27,7 @@ "angular2", "benchmarks/e2e_test/old", "benchmarks/src/old", + "benchmarks/src/**/index_aot.ts", "benchmarks_external", "payload_tests", "rollup-test", diff --git a/scripts/ci-lite/offline_compiler_test.sh b/scripts/ci-lite/offline_compiler_test.sh index bc3ffdac5c..239f548902 100755 --- a/scripts/ci-lite/offline_compiler_test.sh +++ b/scripts/ci-lite/offline_compiler_test.sh @@ -21,6 +21,7 @@ TMPDIR=${TMPDIR:-.} readonly TMP=$TMPDIR/e2e_test.$(date +%s) mkdir -p $TMP cp -R -v modules/@angular/compiler-cli/integrationtest/* $TMP +cp -R -v modules/benchmarks $TMP # Try to use the same versions as angular, in particular, this will # cause us to install the same rxjs version. cp -v package.json $TMP