db49d422f2
Detailed changes: - remove `UNINITIALIZED`, initialize change detection fields with `undefined`. * we use `view.numberOfChecks === 0` now everywhere as indicator whether we are in the first change detection cycle (previously we used this only in a couple of places). * we keep the initialization itself as change detection get slower without it. - remove passing around `throwOnChange` in various generated calls, and store it on the view as property instead. - change generated code for bindings to DOM elements as follows: Before: ``` var currVal_10 = self.context.bgColor; if (jit_checkBinding15(self.throwOnChange,self._expr_10,currVal_10)) { self.renderer.setElementStyle(self._el_0,'backgroundColor',((self.viewUtils.sanitizer.sanitize(jit_21,currVal_10) == null)? null: self.viewUtils.sanitizer.sanitize(jit_21,currVal_10).toString())); self._expr_10 = currVal_10; } var currVal_11 = jit_inlineInterpolate16(1,' ',self.context.data.value,' '); if (jit_checkBinding15(self.throwOnChange,self._expr_11,currVal_11)) { self.renderer.setText(self._text_1,currVal_11); self._expr_11 = currVal_11; } ```, After: ``` var currVal_10 = self.context.bgColor; jit_checkRenderStyle14(self,self._el_0,'backgroundColor',null,self._expr_10,self._expr_10=currVal_10,false,jit_21); var currVal_11 = jit_inlineInterpolate15(1,' ',self.context.data.value,' '); jit_checkRenderText16(self,self._text_1,self._expr_11,self._expr_11=currVal_11,false); ``` Performance impact: - None seen (checked against internal latency lab) Part of #13651 |
||
---|---|---|
.. | ||
e2e_test | ||
src | ||
README.md | ||
favicon.ico |
README.md
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