问题标签 [jsperf]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - 如何在 jsperf 中指定测试浏览器?
我发现 jsperf 中的很多测试用例可以在很多浏览器中运行并在 browserscope 中显示结果。
但是当我设置测试时,测试只能在我自己的浏览器版本中运行。
如何在所有版本的浏览器中运行我的测试用例?
javascript - Array.map 的 Javascript 性能
刚刚在jsperf中写了一些测试用例来测试命名函数和匿名函数在使用Array.map
和其他替代方案时的区别。
http://jsperf.com/map-reduce-named-functions
(对不起url名称,这里没有测试Array.reduce
,我在完全决定我要测试什么之前命名了测试)
一个简单的 for/while 循环显然是最快的,但我仍然对慢 10 倍以上感到惊讶Array.map
......
然后我尝试了 mozilla 的 polyfill https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map#Polyfill
然后我尝试了一个我自己编写的简单实现......
结果总结:
从最快到最慢:
- 对于简单/同时(大致相同)
- Map3(我自己的实现)
- Map2 (Mozilla polyfill)
Array.map
- 对于在
观察
有趣的是,命名函数通常比使用匿名函数快一点(大约 5%)。但我注意到,polyfill 在 Firefox 中使用命名函数较慢,但在 chrome 中更快,但 chrome 自己的地图实现在命名函数时较慢......我每个测试了大约 10 倍,所以即使它不是完全密集的测试(jsperf已经这样做了),除非我的运气这么好,否则它应该足以作为指导。
此外,chrome 的map
功能比我机器上的 firefox 慢 2 倍。完全没想到。
而且……firefox自己的Array.map
实现比Mozilla Polyfill慢……哈哈
我不确定为什么 ECMA-262 规范规定map
可以用于数组以外的对象(http://www.ecma-international.org/ecma-262/5.1/#sec-15.4.4.19)。这使得整个地图功能慢 3-4 倍(如我的测试所示),因为您需要在每个循环中检查属性是否存在......
结论
如果您认为不同浏览器的执行方式略有不同,那么命名函数和匿名函数之间并没有太大区别。
归根结底,我们不应该进行太多的微优化,但我发现这很有趣 :)
javascript - 为什么 jsperf 根据 HTML 和 setup 中的准备代码给出不同的结果?
我试图查看在 javascript 中将字符串转换为数字的哪些方法性能更高,所以我去 jsperf 看看哪种方法效果最好。但是,根据初始变量是在 Benchmark.prototype.setup() 函数中定义还是直接在全局范围内定义,我似乎得到了不同的结果。
关于为什么会发生这种情况的任何想法?
javascript - 缩小 JavaScript 的执行时间会变慢吗?
我正在测试缩小的 JavaScript 在移动设备上的性能是否更好。在研究这个主题时,我遇到了这个 jsperf 测试:
http://jsperf.com/minified-vs-crushed/2
根据这个测试,删除空格会加快执行速度,但缩小代码实际上会使其运行速度变慢。我知道缩小应该加快加载时间,但它会使执行时间变慢吗?有什么我不明白的地方吗?
进一步阅读:
javascript - JSPerf 测试用例给出错误但在 codepen 上工作正常
谁能告诉我为什么这个 JSPerf 测试用例给了我错误?我多次查看代码,我找不到任何错误。我什至在 codepen 中的代码,一切都运行良好。
javascript - 为什么 .html() 用于相同目的时比 .text() 快得多?
我在玩 jQuery.text()
和.html()
方法并运行一些简单的 jsPerf 测试时,我惊讶地发现.html()
检索文本的速度几乎快了一个数量级:
$div.text()
– 88,496 次操作/秒$div.html()
– 592,028 次操作/秒
为什么.text()
比.html()
结果相同时慢得多?.text()
执行哪些操作会.html()
跳过以解释这种差异?
我知道每种方法都有不同的目的;我很好奇它们用于相同目的的情况。
browser - jsperf 如何处理浏览器错误?
我想测试本机实现的 es6 功能。
如果浏览器不支持该功能,我希望测试不要显示在 browserscope 图中。
这会“正常工作”(jsperf 取消测试而不显示在图表中)还是有一种特殊的方法可以取消 jsperf 测试?
我自然会尝试这个,但我想知道是否有“jsperf 方式”来管理这个。
search - 如何找到我的 jsperf 测试?
现在是本周的菜鸟问题。如何找到我的 jsPerf 测试?据我所知,没有“帐户”,寻找我的名字或网址似乎没有帮助!
我还想按姓名、网站等搜索,以及我认识的其他人的“个人”搜索查询。
——欧文
javascript - 设置函数的速度不是预期的
我正在比较两种不同类型的 setter 的性能,如下所示:
区别在于 setter 的存储位置:q.x.set
vs z.x_set
。我希望该z
变体运行得更快,因为它需要更少的表查找。相反,该q
变体始终更快。任何想法为什么?这是 jsperf:http: //jsperf.com/hq7f3