衡量JavaScript性能
我有一个JavaScript文件,它接受一个输入,用它进行一些计算,然后返回一个结果。现在,我想测量它的性能,例如检查运行1000个输入需要多少时间。问题是我几乎不了解Javascript(代码也不是我的),所以我不知道如何做到这一点。StackOverflow我发现了一些类似的问题,但问题是“脚本运行一次需要多少时间”,而不是“脚本需要多少时间来细化1000个输入”衡量JavaScript性能,javascript,performance,Javascript,Performance,我有一个JavaScript文件,它接受一个输入,用它进行一些计算,然后返回一个结果。现在,我想测量它的性能,例如检查运行1000个输入需要多少时间。问题是我几乎不了解Javascript(代码也不是我的),所以我不知道如何做到这一点。StackOverflow我发现了一些类似的问题,但问题是“脚本运行一次需要多少时间”,而不是“脚本需要多少时间来细化1000个输入” 如果有帮助的话,是脚本。我会这样做(取决于窗口控制台是否存在以及是否具有time属性): if('console'在窗口中&'t
如果有帮助的话,是脚本。我会这样做(取决于窗口控制台是否存在以及是否具有time属性):
if('console'在窗口中&'time'在window.console中){
控制台。时间(“时间”);
对于(var k=0;k如果你想测量和分析这个脚本,你只需要增加你的javascript知识(至少一点)
然后,您可以使用一个基准测试工具,如。您可以在浏览器或node.js中使用它
jsperf.com使用benchmark.js。您可以在那里设置一个测试用例,该测试用例应该在几分钟内完成。它通常设计用于比较两个脚本,但您可以将脚本放入两个测试中,然后您就有了第一个指示尝试使用。它将允许您包括您需要的任何脚本,并设置一个测试用例,然后您可以看到pe是如何运行的R性能是,并与同一代码的其他变体等进行比较。这与我需要的不完全一样(检查单个运行的运行时),但很容易修复。将进行编辑以匹配请求。@Giuliomusarello,您想做什么?单独测量每个运行?在这种情况下,将代码放入循环中。我没有注意到for循环是隐式的,所以添加了它。
if('console' in window && 'time' in window.console){
console.time('time');
for (var k=0;k<1000;k++) {
derp(input);
}
console.timeEnd('time');
} else {
var d = new Date();
for (var k=0;k<1000;k++) {
derp(input);
}
console.log('result: ' + new Date().getTime() - d.getTime() + 'ms');
}