问题标签 [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 - eval() 正在减慢其他代码,为什么?
在程序中的任何地方使用 eval 似乎会减慢其他代码,即使从未执行过。为什么是这样?
在下面的示例中有代码:
如果eval()
两者都被注释掉simpleFor()
并且使用 for 循环具有相当的性能。eval()
本机循环何时会减速约 85%。我已经使用 jsperf 的 Chrome/Firefox 进行了测试,并使用了类似的脚本 nodejs。
示例位于:http: //jsperf.com/eval-wierdness
我最初的想法,以及我是如何发现这一点的,是创建一个函数来创建性能高效的映射函数,例如:
是否可以在不减慢其他代码速度的情况下使这样的功能高效?
javascript - 使用 HTML5 的 performance 和 performance.timing 对象测量 JS 性能
我正在根据 HTML5 提供的性能对象测量我的网站的性能,我想知道我的应用程序出了什么问题,我还想在我的本地数据库中记录其他最终用户的这些性能对象,以便我有信息从他们的角度来看,但我不太熟悉每个属性的含义,例如 connectStart、connectEnd 延迟的原因......我根据我的知识创建了一张地图,但我需要社区为此提供意见.. . 这对其他人也很有帮助
该过程的顺序显示在此图像中以供参考
我还为此创建了一个JSFiddle
同样,我还想在我的网页中测量 AJAX 请求的性能,我正在考虑使用 AJAX 请求的 readyState 所以我想知道在每次状态更改之间花费时间的原因是什么
我想这样做的原因是,有时我们会抱怨我们的应用程序有点慢,所以在这种情况下,我们可以读取该用户的性能对象并读取整体性能对象。我们还可以在应用程序使用高峰期和其他时间读取各种性能对象,并希望测量应用程序的哪个部分需要更长的时间来加载。同时它是一个会随着时间发展的产品,所以为了将来的参考,我也可以使用这个数据作为基准。所以我唯一的重点是完全理解这个对象
另外,如果有其他方法,请告诉我(如果我要走很长的路)...
javascript - 为什么双重查找比 JavaScript 中的单一查找更快?
我在jsperf测试中看到一些奇怪的行为。这是设置:
然后我只需查找每个属性q.x
、q._x
和q.z.x
。
单次查找q.x
比q._x
预期的原型查找要快。但是双重查找q.z.x
是最快的。我预计q.z.x
会是最慢的,尤其是与q.x
.
q.z.x
甚至比q.z
. 这里发生了什么?
javascript - jsperf 测试 setInterval() 与 requestAnimationFrame()
有人可以解释为什么turnEvenOld(250, 250)
(0.089ms)的运行速度比turnEvent(250, 250)
(0.447ms)快得多吗?
我认为使用requestAnimationFrame()
比运行更快更便宜setInterval()
?
设置间隔():
请求动画帧():
javascript - JSPerf 测试结果随着测试的运行而变慢?
背景:所以,我试图做一个测试,看看三种使用 jQuery 绑定“点击”事件的方法的性能差异on.()
。我看到了一些相当大的差异(比我预期的要大),当一位同事运行结果时,他注意到,如果你改变测试运行的顺序,结果会改变,但同样“不正常”。
所以,我决定做一个非常简单的测试:
1) 一个<div>
包含 100 个子元素<div>
的父元素,每个子元素都只有一个内部数字 (1-100) 和class
值“目标元素”。
2)每个元素都有一个click
绑定到它的事件,使用这个:
3)click
事件只是将文本值设置为局部变量:
4)然后,我设置了一个“触发”函数来调用所有孩子<div>
的点击:
5)然后,我设置了 3 个测试运行,它们都调用了完全相同的测试:
运行 1 --->triggerClicks("#context1");
运行 2 --->triggerClicks("#context1");
运行 3 --->triggerClicks("#context1");
你可以在这里看到测试:http: //jsperf.com/jsperf-perf-test
在我测试的所有浏览器中,结果都大不相同,随着运行的继续,速度越来越慢:
铬 41
火狐 36
即 9
那么我在这里错过了什么?我意识到这是一个重复性测试,并且正在处理很多元素,但这不应该对运行结果产生太大影响。任何人都可以看到为什么会由于我的代码而不是 JSPerf 出现严重问题而发生这种情况的任何原因吗?
javascript - 为什么按大小更快地迭代数组
在第一个示例中,我创建了长度为 1000 的空数组:
在第二个示例中创建了长度为 0 的空数组:
在 OS X 10.10.3 上的 Chrome 41.0.2272.118 中进行测试,第一个块运行得更快。为什么?因为 JavaScript 引擎知道数组大小?
基准测试在这里http://jsperf.com/poerttest/2。
javascript - 为什么是`exp && "t" || "f"` 比 inline-if-else 慢得多?
为什么逻辑表达式n 比if-else或inline-if-else慢两倍?
- 所有函数的评估结果都相同。
1
所有函数都从and的数组中传递一个值0
,请参阅这个jsperf 测试。
javascript - jquery克隆多次和appendTo性能
我想多次克隆一个元素(比如 4 次)并将它们附加到元素的父级。
我在 jQuery 中编写了以下代码
这是正确的方法吗?或任何更好的方法来做到这一点?我在网上阅读了有关文档片段的信息并写了以下内容。
两者都工作正常。第二个对性能有什么影响吗?
html - 画布尺寸对性能很重要吗?
在构建一个小游戏时,出现了一个关于 Canvas API 的一般性能相关问题:我只在大画布的一小块空间上清理和绘图。在这种情况下,画布的大尺寸会降低性能还是仅绘制像素的数量很重要?例如,当某些事情发生变化时,是否会重新绘制整个画布?
sorting - 为什么插入排序比合并排序快?
我在 jsperf.com 上创建了 3 种排序方法的测试:冒泡、插入和合并。关联
在测试之前,我创建了随机数从 0 到 1Mln 的未排序数组。每次测试都表明插入排序比合并排序快。这种结果的原因是什么,如果合并排序时间 O(n log(n)) 而插入和冒泡排序在 这里有 O(n^2) 测试结果