我对分析的想法完全不熟悉,有人能给我一些关于如何分析特定功能的简单步骤吗?
两个函数都做同样的事情,但一个是vs2008中的C#,另一个是vs2010中的其他C ++。我真的对C ++函数感兴趣,因为它非常慢,我想知道在哪里/为什么。感谢。
答案 0 :(得分:2)
关于如何分析特定功能的简单步骤
我使用的方法是random pausing,可能更好地称为poor man's profiler(在我看到它们如何聚合之前我喜欢它)。 这是another link。 您不必告诉它要查看哪些具体功能。 它会自动查找花费最多时间的内容,无论是该功能还是其他功能。
关于它的事情是,与“真正的”剖析器相比,有些人可能会说它是粗糙的,乏味的等等。 那为什么呢?
因为它有效。
你可以解决你的问题,直到具体说明,并知道要解决什么问题,然后才能开始解决大多数剖析器产生的大量问题 - 自我时间,通话计数,呼叫树,呼叫图,“热门路径“,”cpu time“,etc. etc.。
任何探查者要问的事情并不是“准确”,而是
这不是你关心的吗?
Here's an example使用随机暂停进行了43倍的加速。
答案 1 :(得分:0)
这是一个想法。编写一个重复调用此函数的测试应用程序,尽可能少做其他事情。然后使用您的两个版本的函数创建两个可执行文件。现在在两个可执行文件上运行Very Sleepy探查器,并比较结果。分析器将向您显示每个功能的缓慢部分。
您可能觉得有用的另一个分析器是Shiny。它以完全不同的方式工作。您必须在要分析的代码的函数或部分中插入调用,然后编译启用了特定探查器的应用程序版本。