在发生之前修复性能退步问题
Netflix is used by 222 million members and runs on over 1700 device types ranging from state-of-the-art smart TVs to low-cost mobile devices.
Netflix有2.22亿会员使用,在1700多种设备上运行,从最先进的智能电视到低成本的移动设备。
At Netflix we’re proud of our reliability and we want to keep it that way. To that end, it’s important that we prevent significant performance regressions from reaching the production app. Sluggish scrolling or late rendering is frustrating and triggers accidental navigations. Choppy playback makes watching a show less enjoyable. Any performance regression that makes it into a product release will degrade user experience, so the challenge is to detect and fix such regressions before they ship.
在Netflix,我们为我们的可靠性感到自豪,我们希望保持这种状态。为此,重要的是我们要防止重大的性能退步进入生产应用。迟缓的滚动或延迟的渲染令人沮丧,并引发意外的导航。不流畅的播放使观看节目变得不那么令人愉快。任何进入产品发布阶段的性能退步都会降低用户体验,所以我们面临的挑战是如何在产品发布前发现并修复这些退步。
This post describes how the Netflix TVUI team implemented a robust strategy to quickly and easily detect performance anomalies before they are released — and often before they are even committed to the codebase.
这篇文章描述了Netflix TVUI团队如何实施一个强大的策略,在发布之前快速、轻松地检测出性能异常--而且往往是在它们被提交到代码库之前。
What do we mean by Performance?
我们所说的绩效是什么意思?
Technically, “performance” metrics are those relating to the responsiveness or latency of the app, including start up time.
从技术上讲,"性能 "指标是与应用程序的响应性或延迟有关的指标,包括启动时间。
But TV devices also tend to be more memory constrained than other devices, and as such are more liable to crash during a memory spike — so for Netflix TV we actually care about memory at least as much as performance, maybe more so.
但是电视设备也往往比其他设备更受内存限制,因此在内存激增时更容易崩溃--所以对于Netflix电视来说,我们实际上至少和性能一样关心内存,也许更关心。
At Netflix the term “performance” usually encompasses both performance metrics (in the strict meaning) and memory metrics, and that’s how we’re using the term here.
在Netflix,"性能 "一词通常包括性能指标(严格意义上的)和内存指标,我们在这里也是这样使用这个词。
Why do we run Performance Tests on commits?
为什么我们要对提交的文件进行性能测试?
It’s harder to reason about the performance profile of pre-production code since we can’t gat...