Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/434.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用API分析Javascript性能_Javascript_Google Chrome_Performance Testing_Profiler - Fatal编程技术网

使用API分析Javascript性能

使用API分析Javascript性能,javascript,google-chrome,performance-testing,profiler,Javascript,Google Chrome,Performance Testing,Profiler,嘿,我一直在探索谷歌chrome调试工具和评测工具。真是太神奇了。我遇到的一个有用的东西是在一个完整的树结构中获取执行的调用树及其所花费的时间(包括自我时间和总子时间计数) 因此,我想知道我们是否可以使用一些JSAPI在树结构中获得调用树及其计时。我可以使用这个树计时来对我的代码的不同版本进行基准测试,如果我可以自动化的话,还可以完成其他各种很酷的事情 我在网上找不到多少有用的东西。你能告诉我这个方向吗?提前谢谢 如果问题中的某些部分不清楚,请在评论中告诉我。我将重新措辞。您可以使用和开始和停止

嘿,我一直在探索谷歌chrome调试工具和评测工具。真是太神奇了。我遇到的一个有用的东西是在一个完整的树结构中获取执行的调用树及其所花费的时间(包括自我时间和总子时间计数)

因此,我想知道我们是否可以使用一些JSAPI在树结构中获得调用树及其计时。我可以使用这个树计时来对我的代码的不同版本进行基准测试,如果我可以自动化的话,还可以完成其他各种很酷的事情

我在网上找不到多少有用的东西。你能告诉我这个方向吗?提前谢谢


如果问题中的某些部分不清楚,请在评论中告诉我。我将重新措辞。

您可以使用和开始和停止录制个人资料。运行后,您可以在开发者工具的配置文件选项卡中看到结果。

如果您想对应用程序的不同版本进行基准测试,您可以在Chrome开发工具的配置文件中轻松实现这一点。您可以将它们录制并保存到计算机中,然后在将来的任何时候再次加载它们。这不仅仅是为了本次会议

例如,记录版本1的配置文件。几天后,你在Chrome中加载你的应用程序,记录新的配置文件,然后导入旧的配置文件,并比较图表或树状图

您甚至可以打开计算机上保存的文件,这些文件以JSON格式存储。你有你需要的所有数据在那里玩。您可以运行服务器来解析该数据,并将相关信息提取为您喜欢的格式。但是,数据量可能很大,处理速度也很慢

有关评论的最新情况:
console.timeline
console.timelineEnd
都被弃用,并替换为
console.time
console.timeEnd
。但是,没有要存储的返回值,因此您无法在JavaScript中对结果执行任何操作。但是,您可以使用:

然后你可以对结果做你喜欢的事情。 如果要对第三方函数计时,可以覆盖该函数,并在两者之间应用原始函数:

var oldFunc = myFunc;

myFunc = function() {
    var start = window.performance.now();
    var returnVal = oldFunc.apply(this, arguments);
    var end = window.performance.now();
    var timeSpent = (end - start);
    var stack = new Error().stack; // get call stack
    return returnVal;
}

是的,这是人工检查@Daniel。我想按程序做。假设我有一个叫做ABC的图书馆。我使用console.profile分析了它。将分析结果保存在树结构中,如tree1中。我对ABC代码做了一些修改。我重新分析了它。再次抚摸说树2中的结构。现在,在编程上,我比较了两种结构,并说,嘿,由于所做的更改,这个和这个函数现在或多或少地占用了这些时间。一个全自动的分析。。这可行吗,先生?嘿@Gideon,g8你刚刚解决了我50%的问题。你有什么线索吗。如果我们能做到这一点,一切就结束了。有什么想法吗,兄弟?@Ayan看看我的最新答案。我希望这会有点帮助。
var oldFunc = myFunc;

myFunc = function() {
    var start = window.performance.now();
    var returnVal = oldFunc.apply(this, arguments);
    var end = window.performance.now();
    var timeSpent = (end - start);
    var stack = new Error().stack; // get call stack
    return returnVal;
}