|
Post by account_disabled on Jan 31, 2024 8:47:32 GMT
您最近可能看到过一些有关Google 计划停用其 Octane JavaScript 基准测试套件的头条新闻。如果您不知道这一点或没有阅读标题,请让我简要回顾一下。Google 推出了 Octane 来取代行业标准 SunSpider 基准测试。SunSpider 由 Apple 的 Safari 团队创建,是最早的 JavaScript 基准测试之一。 Pause Next Unmute Current Time 0:06 / Duration 2:00 Fullscreen 箭头指向 100% 的性能表。 性能基准。 SunSpider 有两个问题。首先,它基于微基准(想想测试新数组的创建数千次),这并不能非常准确地反映现实世界的使用情况。其次,SunSpider 排名在浏览器制造商中占有很大的比重,导致一些浏览器制造商优化其 JavaScript 引擎以获得更好的基准分数,而不是实际程序的需求。在某些情况下,这些调整甚至会导致生产代码运行速度比以前慢! Octane 专注于尝试创建更准确地模拟真实工作负载的测试,并成为衡量 JavaScript 实现的标准。 然而,浏览器制造商再次迎头赶上,我们看到了针对 Octane 测试量身定制的优化。这并不是说基准没有用。浏览器之间的竞争导致JavaScript 性能全面大幅提升。 您可能会说这有点有趣,但这对我作为开发人员的日常工作有何影响?当试图说服人们框架 y 相对于框架 x 的优 WhatsApp 号码数据 势时,经常会引用基准测试,并且有些人非常重视这些数字。上周我注意到一个名为MoonJS的新 UI 库在一些新闻聚合器上运行。MoonJS 将自己定位为“最小、速度极快”的库,并引用了一些基准数据来试图支持这一点。 需要明确的是,我并不是在这里挑剔 MoonJS。这种对速度的关注很常见,尤其是在 UI 库中(以任何 React 克隆为例)。不过,正如我们在上面的 SunSpider 和 Octane 示例中看到的,基准测试可能会产生误导。许多现代 JavaScript 视图库和框架利用某种形式的虚拟 DOM 来渲染输出。 他的结论是?“在选择框架或库时,不要使用任何 Web 框架基准测试中的数字来做出决定。” Learn to Code with JavaScript 在根据其声称的速度进行比较时,还有其他原因需要谨慎。重要的是要记住,像 SunSpider 一样,许多基准测试都是微基准测试;他们正在以您在为应用程序创建界面时不可能匹配的规模来衡量重复操作。 还值得一问的是,速度对于您的特定用例有多重要。构建一个基本的 CRUD 应用程序不太可能让任何 UI 库屈服,学习曲线、可用人才库和开发人员幸福感等因素也是重要的考虑因素。我过去见过很多关于 Ruby 对于构建 Web 应用程序是否太慢的讨论,但是,尽管存在更快的选项,但许多应用程序已经并将继续使用 Ruby 编写。 速度指标可能会产生误导,但根据您正在构建的内容,它们的用途也可能有限。与所有经验法则和良好实践一样,停下来思考它如何(或是否)适用于您的情况总是好的。
|
|