Visual Studio 分析工具的采样分析方法定期中断计算机处理器并收集函数调用堆栈。 调用堆栈是一个动态结构,用于存储有关正在处理器上执行的函数的信息。
探查器分析确定处理器是否正在执行目标进程中的代码。 如果处理器没有在执行目标进程中的代码,将放弃样本。
如果处理器正在执行目标代码,探查器将递增调用堆栈上每个函数的样本计数。 采样时,调用堆栈上只有一个函数当前正在执行代码;堆栈上的其他函数都是函数调用层次结构中正在等待其子函数返回的父函数。
对于样本事件,探查器递增当前正在执行其指令的函数的独占样本计数;由于独占样本还是该函数总(非独占)样本的一部分,因此也递增当前活动函数的非独占样本计数。
探查器递增调用堆栈上所有其他函数的非独占样本计数。
非独占样本数
执行目标函数期间收集的样本总数。
这包括直接执行函数代码期间收集的样本和执行目标函数调用的子函数期间收集的样本。
独占样本数
直接执行目标函数的指令期间收集的样本数。
独占样本不包括执行目标函数调用的函数期间收集的样本。
非独占百分比
函数或数据范围的非独占样本占分析运行中非独占样本总数的百分比。
独占百分比
函数或数据范围的独占样本占分析运行中独占样本总数的百分比。