爱情岛社论线路一_社论:基准化还是不基准化?

爱情岛社论线路一

您可能最近看到了一些有关Google淘汰其Octane JavaScript基准套件的计划的头条新闻。 如果您不了解此内容或没有阅读标题,请允许我简要回顾一下。 Google推出了Octane来替代行业标准的SunSpider基准测试。 SunSpider是由Apple的Safari团队创建的,并且是最早JavaScript基准测试之一。

爱情岛社论线路一_社论:基准化还是不基准化?_第1张图片

SunSpider存在两个问题。 首先,它是基于微基准测试(想对新阵列的创建进行数千次测试),它不能非常准确地反映实际使用情况。 其次,SunSpider排名在浏览器制造商中占有很重要的地位,从而使他们JavaScript引擎进行了一些优化,以获得更好的基准评分,而不是实际程序的需求。 在某些情况下,这些调整甚至导致生产代码的运行速度比以前

Octane致力于尝试创建能够更准确地模拟实际工作负载的测试,并成为衡量JavaScript实施的标准。 但是,浏览器制造商再次赶上了潮流,我们看到针对Octane测试量身定制的优化。 这并不是说基准测试没有用。 浏览器之间的竞争已全面改善了JavaScript性能。

您可能会说有点含糊,但这对我作为开发人员的日常工作有何影响? 当试图说服人们框架y优于框架x时,经常会引用一些基准,有些人在这些数字中非常重视。 上周,我注意到一个名为MoonJS的新UI库正在对一些新闻聚合器进行巡回检查。 MoonJS将自己定位为“最小的,快速的”库,并引用一些基准数据来尝试对其进行支持。

需要明确的是,我不在这里选择MoonJS。 这种对速度的关注非常普遍,尤其是在UI库中(以任何一个React克隆为例)。 但是,正如我们在上面以SunSpider和Octane的示例所看到的那样,基准测试可能会产生误导。 许多现代JavaScript视图库和框架都利用某种形式的虚拟DOM呈现输出。 在研究不同的实现过程中, 鲍里斯·考尔 ( Boris Kaul)花了一些时间研究基准化虚拟DOM性能的方法,并发现调整VDOM性能相对容易以在基准上表现出色。 他的结论? “在选择框架或库时,请勿使用任何Web框架基准中的数字来做出决定。”

根据库声称的速度比较库时,还有其他一些注意事项。 重要的是要记住,像SunSpider一样,许多基准测试都是微基准测试。 他们正在以无法为应用程序创建接口时匹配的规模来衡量重复操作。

还值得询问的是,速度对于您的特定用例有多重要。 构建一个生硬的CRUD应用程序不太可能让任何UI库都屈服,而且学习曲线,可用人才库和开发人员满意度等因素也是重要的考虑因素。 过去,我已经讨论过很多关于Ruby是否太慢而无法构建Web应用程序的讨论,但是尽管存在更快的选择,但是很多应用已经并且将继续用Ruby编写。

速度指标可能会产生误导,但根据您要构建的内容,它们的用途也可能有限。 与所有经验法则和良好做法一样,停下来思考一下如何(或是否)适用于您的情况始终是一件好事。 我很想听听您的经验:您是否在实践中使用了不符合基准要求的软件? 您是否构建了速度差异很重要的应用程序? 给我留言,让我知道!

翻译自: https://www.sitepoint.com/to-benchmark-or-not-to-benchmark/

爱情岛社论线路一

你可能感兴趣的:(爱情岛社论线路一_社论:基准化还是不基准化?)