我正在为vs2008专业版寻找一个好的剖析器,免费或价格合理。我已经检查过以前的帖子,并尝试了大约8个分析器,但大多数都太基本或太详细。请提出建议,我的要求如下:
答案 0 :(得分:1)
也许您认为它太基础,但如果您想知道哪些代码行可以通过优化来节省您最多的时间,manual stack sampling method非常有效。
我还建议第2点(通话计数和通话时间)并不完全符合您的要求,如this post的第6点和第2点。相反,一条线在感兴趣区间内的堆叠时间百分比是导致你直接进入“瓶颈”的数字,并且它不需要以高统计精度进行测量。 / p>
答案 1 :(得分:0)
您可以尝试下载开源分析器(VerySleepy,LukeStackWalker),看看他们如何对应用程序进行采样,并尝试提取该逻辑。
然后你的应用程序可以启动第二个线程,它只是对主线程(或所有其他线程)进行采样。
请注意,为了提供可读结果,您的应用程序应该可以直接或通过符号服务器访问调试信息(pdb文件)。另一种方法是将地址与其计数器转储到文件中,并将地址转换为外部实用程序中的函数名称。