解释带注释的源代码

解释带注释的源代码通常是直接进行的,但存在这样的情况,即源代码行的度量并非是由执行源自此源代码行的指令而产生的。这种不确定性来自于将度量分配给源代码行的具体方式。

在处理每个事件的调用栈时,互斥度量被分配给叶 PC,它是将要执行的下一条指令的地址。每条指令均以派生出该指令的源代码行的编号进行标记,并且还要对属于源代码行的所有指令求出该源代码行的互斥度量总和。

如果在记录事件时正在执行的指令与叶 PC 来自于同一源代码行,则度量可被视作是由执行该源代码行而产生的。但是,当叶 PC 来自于和当前正执行指令所在源代码行不同的源代码行时,无论如何都要将该叶 PC 所属源代码行的一部分度量解释为“在此行等待执行时累计的度量”。例如,当对一个源代码行计算所得的值用在下一个源代码行中,或者向另一个源代码行传输控制时。

当在执行中存在大幅度延迟(例如缓存未命中或资源队列停顿)时,或者当指令正在等待来自上一个指令的结果时,如何解释度量的问题至关重要。在这些情况之下,源代码行的度量看起来可能会过高,您应该查看代码中的其它行,以找出引起高度量值的那一行。

另请参见
源标签
解释带注释的反汇编代码

找到要找的内容了吗?如未找到,请将您的意见通过电子邮件发送至 docfeedback@sun.com。
法律声明