寻找一个好的vc ++探查器,已经检查过以前的帖子

时间:2010-06-11 12:20:33

标签: visual-c++ profiling

我正在为vs2008专业版寻找一个好的剖析器,免费或价格合理。我已经检查过以前的帖子,并尝试了大约8个分析器,但大多数都太基本或太详细。请提出建议,我的要求如下:

  1. 它可以编译,以便与我的应用程序很好地集成。我不会回避修改我的方法。
  2. 输出应该很简单,我只需要通过方法调用计数和时间而不需要其他任何内容。
  3. 我最关心INSIDE方法,你可以把它称为逐行分析。我想选择一个方法,并且知道大部分时间都在吃哪一行(表达式/方法调用)。

2 个答案:

答案 0 :(得分:1)

也许您认为它太基础,但如果您想知道哪些代码行可以通过优化来节省您最多的时间,manual stack sampling method非常有效。

我还建议第2点(通话计数和通话时间)并不完全符合您的要求,如this post的第6点和第2点。相反,一条线在感兴趣区间内的堆叠时间百分比是导致你直接进入“瓶颈”的数字,并且它不需要以高统计精度进行测量。 / p>

答案 1 :(得分:0)

您可以尝试下载开源分析器(VerySleepy,LukeStackWalker),看看他们如何对应用程序进行采样,并尝试提取该逻辑。

然后你的应用程序可以启动第二个线程,它只是对主线程(或所有其他线程)进行采样。

请注意,为了提供可读结果,您的应用程序应该可以直接或通过符号服务器访问调试信息(pdb文件)。另一种方法是将地址与其计数器转储到文件中,并将地址转换为外部实用程序中的函数名称。