使用“Very Sleepy”分析器对DLL进行性能分析

18

我有一个想要进行性能分析的DLL。我尝试使用Very Sleepy,但似乎无法显示源文件列,它只显示“未知”。无论如何,我真的很困惑该如何使用这个应用程序。有人可以指点一下吗?它没有多少文档,并且似乎最近也没有更新了.. =/

谢谢..

编辑:添加另一个问题:

在该应用程序中,排他和包容这些术语是什么意思?谢谢..

2个回答

26

如果您想知道源文件和列,就需要调试信息(PDB文件)。除非您请求保存,否则不会保存这些信息。


很遗憾,我找不到分析器的任何文档。然而,在性能分析时有一个包含和独占的定义

  • 包含:在函数中花费的总时间
  • 独占:在函数中花费的时间减去调用其他函数所花费的时间

3
谢谢,将PDB+MAP文件添加到DLL目录中可以让这些东西出现.. :) 不过我仍然得到一些未知的东西,这可能是其他DLL的功能吗? - krebstar
1
我会期望它是另一个 DLL 的函数,是的。 - Max Lybbert
感谢您报告这个损坏的链接。"似乎已经损坏"这个表述很好,因为该链接现在指向一个与我的答案无关的PDF文档。我将更换为另一个--希望更稳定的--文档。 - Max Lybbert
看起来链接又挂了。虽然过去6年后不能指望链接还能正常工作。 - medasumanth

4
如果您已经有PDB文件,请记得将其保留在生成它的同一目录中。
如果您不记得应该将它保存在哪个目录下,只需使用文本/十六进制编辑器打开您的.exe或.dll文件并滚动到文件末尾,pdb目录将在那里。至少在使用MSVC6的情况下是这样。
希望这能帮助到您。

不,我的做法是将我的 DLL 移动到可执行文件所需的目录中。 因此,当我运行 Very Sleepy 时,我必须附加到 exe 的进程上。如果没有将 PDB 文件放在 DLL 所在的目录中,我将无法查看信息。但我将 PDB 和 MAP 文件添加到其中,然后它就能正常工作了。 - krebstar
好的,也许Very Sleepy没有注意到我提到的信息,并且总是尝试在dll所在的相同目录中找到PDB...也许我的解决方案只适用于MSVC...无论如何,很高兴你已经让它工作了。 - David
谢谢David.. :) 我实际上正在使用MSVC++ 6.. 但我没有从编译器输出目录运行我的dll,这就是为什么我需要移动/复制pdb和map文件的原因 :).. 谢谢.. - krebstar
你的意思是说你需要将调试文件复制到实际搜索它们的exe目录中吗? - David

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接