查看原文
其他

【第1156期】Chrome DevTools - 性能监控

Cherry 前端早读课 2019-06-05

前言

去年,其实也就前几天的事情看到的时候还蛮惊讶的,现在浏览器的自带工具都做的这么完善了,秒啊。特别是现在很多H5的动画,在不同的设备上性能差异很大,可以通过这样的工具来了解“毛病”。今日早读文章由@Cherry翻译分享。

正文从这开始~

你是否经常需要 JavaScript 或者 CSS 进行优化,但是不能找到一个简单的方式来衡量优化的效果?

当然,你可以使用时间轴来记录,但是在大多数情况下,时间轴只记录数据,并不是实时更新的。在这点还有其他的性能测量技巧,Chrome DevTools 添加了 “Performance Monitor(性能监控)” 选项卡,可以体现实时性能:

这些都是在 Chrome 稳定版本中可用的并且可以进行以下性能监控:

  1. 打开 URL:“chrome://flags/#enable-devtools-experiments”

  2. 将 “Developer Tools experiments” 选项设置为“启用”

  3. 点击 “Relaunch now” 来重启 Chrome

  4. 打开 Chrome DevTools (快捷键为 CMD/CTRL + SHIFT + I)

  5. 打开 DevTools “Setting” -> “Experiments” 选项

  6. 点击 6 次 SHIFT 显示隐藏的选项

  7. 选中 “Performance Monitor” 选项

  8. 重启 DevTools (快捷键 CMD/CTRL + SHIFT + I )

  9. 点击 “Esc” 打开附加面板

  10. 选择 “Performance monitor”

  11. 单击启用/禁用

  12. 开始使用性能监控吧 😀


这里有很多不同的性能选项,大部分都是非常实用的并且我们在 Chrome 中用一些方法进行度量(例如时间轴,性能选项等)。

但是我想要分享一些新内容:

  • “Layouts / sec”

  • “Style recalcs / sec”

允许你实时的检测你的 CSS 性能,例如:感谢 csstriggers.com,我们知道,改变 CSS 的 top left属性会触发整个像素渲染流程:绘制,布局和组合。如果我们将这些属性用于动画,它将每秒触发几十次/上百次操作。

但是如果你使用 CSS 的 transform 属性的 translateX/Y 来切换动画,你将会发现,这并不会触发绘制和布局,仅仅会触发组合这一阶段,因为这是基于 GPU 的,会将你的 CPU 使用率降低为基本为 0%。

所有的这些都在 Paul Irish 的文章 为什么使用 Translate() 移动元素优于 Top/left。为了测量差异,Paul 使用“时间轴”,展示了触发绘制和布局动作。但是近些年,Paul 正在致力于使用 Chrome DevTools 进行改良,这并不令人惊讶,我们终于有了一个合适的方法来衡量实时 CSS 性能。(我 fork 了他动画切换的示例代码)

示例

一般来说,Chrome 中的性能监视器有很多用途。现在,你可以获得实时的应用程序性能数据啦。

最后,为你推荐

【第843期】前端性能优化

【第564期】移动前端负责人朱海源:移动端电商类展示页面性能优化实战

关于本文

译者:@Cherry

译文:https://juejin.im/post/5a37b2f56fb9a0451e3fe73d(掘金翻译)

作者:@malyw

原文:https://hospodarets.com/chrome-devtools-performance-monitor

校对者:@萌萌、@noahziheng

昨晚回到厦门,打开公众号后台看到有这么一条信息让人看了莫名的感动,谢谢。

@Leung:希望早读君2018能睡多点 身体健康

@Leung童鞋,看到消息后请联系我,送你一本《CSS世界》作为礼物。

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存