Tobias Bosch 24af51a623 fix(core): view engine - fix perf regressions (#14345)
- Make sure `NodeDef`s don’t fall into dictionary mode.
- Use strategy pattern to add debug information / checks, instead of constantly checking for `isDevMode`.
- introduce a very light weight `RendererV2` interface to not have duplicate
  code paths for direct and non direct rendering

The strategy pattern is implemented via the new `Services` object.

Part of #14013

PR Close #14345
2017-02-08 14:42:22 -06:00
..

How to run the benchmarks locally

Run in the browser

$ build.sh (only needed 1x to copy over third party resources) $ cp -r ./modules/benchmarks ./dist/all/ $ ./node_modules/.bin/tsc -p modules --emitDecoratorMetadata -w $ gulp serve $ open http://localhost:8000/all/benchmarks/src/tree/ng2/index.html?bundles=false

Run e2e tests

$ export NODE_PATH=$(pwd)/dist/all:$(pwd)/dist/tools $ ./node_modules/.bin/protractor protractor-e2e.conf.js --specs=dist/all/benchmarks/e2e_test/tree_spec.js

Options for protractor with protractor-e2e.conf.js:

  • --bundles=true: use prebuilt bundles
  • --ng-help: show all available options

Run benchmarks tests

$ export NODE_PATH=$(pwd)/dist/all:$(pwd)/dist/tools $ ./node_modules/.bin/protractor protractor-perf.conf.js --specs=dist/all/benchmarks/e2e_test/tree_perf.js

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