我正在使用VerySleepy 0.7分析应用程序。该应用程序用Qt 4.6.x的C++编写,用VS 2005编译,并且在Windows 7 Ultimate x64上运行。
到目前为止,使用率最高的是对RtlPcToFileHeader的调用
Exclusive Inclusive %Exclusive %Inclusive Module
33.67s 33.67s 15.13% 15.13% ntdll
从文档中我不清楚RtlPcToFileHeader是什么,但是由于在“错误处理函数”下引用了RtlPcToFileHeader,因此似乎不应该使用它。话虽如此,由于基本上在整个性能分析捕获过程中都使用了它,因此它也可能是一些非常基本的函数调用(例如
main
之类的东西)或性能分析本身的副作用。RtlPcToFileHeader函数的目的是什么?
更新:根据Mike的建议,我确实进入了运行过程,并且几次将RtlPcToFileHeader包括在堆栈跟踪中,这似乎与
dynamic_cast
绑定(bind)在一起。我还更改了问题以更好地反射(reflect)出我正在尝试确定RtlPcToFileHeader的实际作用。 最佳答案
只需在调试器下将其暂停即可。研究调用堆栈以了解它在做什么以及原因。然后重复几次。这样可以告诉您时间在哪里以及原因。
如果这对您来说太低级了,请尝试LTProf或任何其他报告行级百分比的墙面时间堆栈采样器,最好使用蝴蝶查看器。
令人费解的数字类型是precisely the legacy of gprof。
关于c++ - 什么是RtlPcToFileHeader?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3959403/