Angular 性能 - OnPush 增加循环次数

标签 angular angular7 angular2-changedetection angular-changedetection

我正在尝试衡量变化检测策略的性能差异。

我已经添加了 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/

相关文章:

angular - 重置分页器第一页 Angular Material

Angular2 变化检测无限循环

Angular 2路由订阅变化检测

angular - WebSocketSubject 不工作

angular - 跳过 Angular Material 步进器中的步骤(取决于某些条件)

angular - Angular 7 中名称错误的表单控件没有值访问器

Angular 为什么我们需要 markForCheck 当 detectChanges 也有效时

angular - 如何将来自 Ionic 相机的图像上传到 firebase?

javascript - 如何在 Chrome 中调试 TypeScript 代码而不是 JavaScript 代码?

Angular 7 : refreshing page with query parameters causing path mismatch