测量JavaScript函数的内存使用、执行时间和性能。

3

我已经搜索了现有的库或解决方案,但是找不到满足我需求的东西,所以我打算自己动手并寻求一些指导。

我想创建一个 JavaScript 测试套件,对两个函数进行 A/B 测试。假设我有以下两个函数:

function foo(){ var x = new Object();}

并且

function bar(){var x = {};}

我希望能够测量执行时间、内存使用情况以及其他有用的统计信息(例如,基准测试可以显示每秒操作次数)。
使用javascript,有哪些方法可以测量上述内容?
我知道一些方法,但是从头开始看看还有什么其他的方法会很好,所以非常欢迎所有建议。
谢谢。
注:我不是要求浏览器插件或Chrome开发工具,测量需要在js中进行。
4个回答

2
var start = new Date().getTime();
*Your Code*
var end = new Date().getTime(),
    time = end - start,
    execs = 1000 / time;

console.log('time in ms: '+time);
console.log('operations per second: '+execs);

不知道如何获取执行的内存使用情况...


很棒的东西。我想知道这是否比使用console.time()更准确?有人知道吗? - atmd
1
很难说console.time()和console.timeEnd()或者我的方法哪个更准确,在我的测试中它们之间最多只有1毫秒的差异。 - Simon
刚刚看了一些 benchmark.js 的东西,他们似乎使用了新的 Date() 方法。 - atmd

1

性能/时间:jsperf.com

其他分析工具 - 尝试使用Chrome的检查器


这并没有提供问题的答案。如果您想对作者进行批评或请求澄清,请在他们的帖子下留言。 - alestanis
jsperf.com无法帮助比较两个JS函数的性能?有趣。 - Guard
下面的评论是在审核“低质量”帖子时自动留下的评论。您的看起来像评论,因此应该将其转换为评论。如果您不想您的答案在下次被标记为低质量,请尝试添加更多说明或示例代码。 - alestanis

0

如果你正在使用/可以使用Node.js,另一个执行时间的选项是process.hrtime()

请参阅此链接以获取详细信息/示例:

使用process.hrtime()进行测量

关于内存使用情况:

Sizeof.js


0

对于内存使用情况,您可以像这样使用window.performance.memory

console.log(performance.memory.usedJSHeapSize);

结果以字节为单位。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接