5e92d649f2
Close #39348 Now `NgZone` has an option `shouldCoalesceEventChangeDetection` to coalesce multiple event handler's change detections to one async change detection. And there are some cases other than `event handler` have the same issues. In #39348, the case like this. ``` // This code results in one change detection occurring per // ngZone.run() call. This is entirely feasible, and can be a serious // performance issue. for (let i = 0; i < 100; i++) { this.ngZone.run(() => { // do something }); } ``` So such kind of case will trigger multiple change detections. And now with Ivy, we have a new `markDirty()` API will schedule a requestAnimationFrame to trigger change detection and also coalesce the change detections in the same event loop, `markDirty()` API doesn't only take care `event handler` but also all other cases `sync/macroTask/..` So this PR add a new option to coalesce change detections for all cases. test(core): add test case for shouldCoalesceEventChangeDetection option Add new test cases for current `shouldCoalesceEventChangeDetection` in `ng_zone.spec`, since currently we only have integration test for this one. PR Close #39422
70 lines
1.9 KiB
JSON
70 lines
1.9 KiB
JSON
{
|
|
"cli-hello-world": {
|
|
"master": {
|
|
"uncompressed": {
|
|
"runtime-es2015": 1485,
|
|
"main-es2015": 141516,
|
|
"polyfills-es2015": 36964
|
|
}
|
|
}
|
|
},
|
|
"cli-hello-world-ivy-minimal": {
|
|
"master": {
|
|
"uncompressed": {
|
|
"runtime-es2015": 1485,
|
|
"main-es2015": 17597,
|
|
"polyfills-es2015": 36709
|
|
}
|
|
}
|
|
},
|
|
"cli-hello-world-ivy-compat": {
|
|
"master": {
|
|
"uncompressed": {
|
|
"runtime-es2015": 1485,
|
|
"main-es2015": 147252,
|
|
"polyfills-es2015": 36964
|
|
}
|
|
}
|
|
},
|
|
"cli-hello-world-ivy-i18n": {
|
|
"master": {
|
|
"uncompressed": {
|
|
"runtime-es2015": 1485,
|
|
"main-es2015": 136703,
|
|
"polyfills-es2015": 37641
|
|
}
|
|
}
|
|
},
|
|
"cli-hello-world-lazy": {
|
|
"master": {
|
|
"uncompressed": {
|
|
"runtime-es2015": 2285,
|
|
"main-es2015": 242417,
|
|
"polyfills-es2015": 36709,
|
|
"5-es2015": 745
|
|
}
|
|
}
|
|
},
|
|
"cli-hello-world-lazy-rollup": {
|
|
"master": {
|
|
"uncompressed": {
|
|
"runtime-es2015": 2289,
|
|
"main-es2015": 218507,
|
|
"polyfills-es2015": 36723,
|
|
"5-es2015": 781
|
|
}
|
|
}
|
|
},
|
|
"hello_world__closure": {
|
|
"master": {
|
|
"uncompressed": {
|
|
"bundle": "TODO(i): temporarily increase the payload size limit from 105779 - this is due to a closure issue related to ESM reexports that still needs to be investigated",
|
|
"bundle": "TODO(i): we should define ngDevMode to false in Closure, but --define only works in the global scope.",
|
|
"bundle": "TODO(i): (FW-2164) TS 3.9 new class shape seems to have broken Closure in big ways. The size went from 169991 to 252338",
|
|
"bundle": "TODO(i): after removal of tsickle from ngc-wrapped / ng_package, we had to switch to SIMPLE optimizations which increased the size from 252338 to 1198917, see PR#37221 and PR#37317 for more info",
|
|
"bundle": 1214857
|
|
}
|
|
}
|
|
}
|
|
}
|