JS的Chrome CPU配置文件中“自我”和“总计”之间的区别


229

Chrome CPU概要分析JS代码中的“自身”和“总计”列有什么区别?

在此处输入图片说明


13
自我时间在严肃的软件中几乎永远不会有用,因为几乎所有时间都花在调用系统/库/ DB / IO等上,因此程序计数器在代码中花费的实际时间(以百分比为单位)非常少,除非您碰巧写了某种紧密循环。它可能会告诉您在系统例程中使用了很多东西,但这对您没有好处。您需要知道代码的哪一部分会导致花费大量时间。
Mike Dunlavey

如果某个函数通过调用内置对象(例如非异步XMLHttpRequest发送)而阻塞,则自拍时间可能非常有用。在这种情况下,这些功能虽然是瓶颈,但可能不会显示在总时间测量的顶部。
康斯坦丁

Answers:


303

self 是直接花在该功能上的时间。

total 是在该函数及其调用的函数中花费了多少时间。


11
所以self只会是内联语句,而不是函数调用?总的来说,所有代码都在调用中执行吗?
CoolUserName 2011年

42
顺便说一句,由于人们似乎找到了一个有用的答案:概要分析器通常是这样,而不仅仅是Chrome。
黄昏

2
如果一个函数递归调用自己会发生什么?那您如何正确阅读呢?
David Limkys '17

3
文档链接在此处(在“查看功能详细信息”部分)Self time完成函数的当前调用需要多长时间,仅包括函数本身中的语句,不包括其调用的任何函数。 Total time完成此功能及其调用的任何功能的当前调用所花费的时间。
Iman Mahmoudinasab

现在沿着自我和总时间值显示的百分比的语义是什么?我的意思是占什么的百分比?
jayarjo

10

自身时间:对于一个函数,是在函数(内联语句)中执行代码的时间。 检查各个功能的性能称为自下而上分析。

总时间:对于一个函数,是该函数的自身时间和该函数调用的所有函数的自身时间。 自上而下的分析是检查功能及其被调用者的性能。

注意:仅因为函数的自用时间长,并不意味着函数本身效率低下。查看该函数被调用多少次也很重要。

英特尔的文章

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.