我正在尝试衡量变化检测策略的性能差异。
我已经添加了 Angular 分析器,并使用 Default 检查,然后将 onPush 添加到我们的大多数组件,这些是结果:(开发模式)
默认:{ msPerTick: 25+-, numTicks: 18+- } onPush: { msPerTick: 2+-, numTicks 220+- }
如您所见,msPerTick 已显着减少,但周期数增加了 10 倍。 我更改为 onPush 的组件越多,因此 ms 减少而 numTicks 增加。
我想知道这是否正常,如果不是,那是什么原因造成的?
额外的细节: Angular 7, 我正在使用延迟加载模块(带路由)。 app.component 采用默认策略。 我在最大的模块上检查它。 big.module 有 big.home 组件(默认)和子组件(onPush)
最佳答案
更新:我想通了,timeChangeDetection 函数运行了半秒,并尝试尽可能多地执行循环。所以想要的情况是尽可能多的 numTicks。
关于 Angular 性能 - OnPush 增加循环次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59964957/