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