3 回答
TA贡献1797条经验 获得超6个赞
内置VS:
如果您具有团队版,则可以使用Visual Studio分析器。
其他选项:
否则检查此线程。
轻松创建自己的:
我个人使用基于Win32 API QueryPerformanceCounter的内部构建的。您可以在一百行或更少的代码范围内制作出易于使用的好东西。
该过程很简单:在要配置的每个函数的顶部创建一个名为PROFILE_FUNC()的宏,该宏将添加到内部管理的统计信息中。然后有另一个名为PROFILE_DUMP()的宏,它将把输出转储到文本文档中。
PROFILE_FUNC()创建一个将使用RAII记录直到销毁该对象为止的时间的对象。此RAII对象的构造函数和析构函数都将调用QueryPerformanceCounter。您也可以将这些行留在代码中,并通过#define PROFILING_ON
TA贡献1846条经验 获得超7个赞
我建议一种非常简单的方法(通过阅读Mike Dunlavey关于SO的文章中学到了):
只是暂停程序。
进行几次以获得合理的样本。如果某个特定功能占用了程序执行时间的一半,则很有可能会很快将其赶上行动。
如果将该功能的性能提高50%,那么您只需将整体执行时间缩短25%。而且,如果您发现甚至根本不需要它(我在使用这种方法的短时间内就发现了几种此类情况),那么您只需将执行时间减少一半。
我必须承认,起初我对这种方法的有效性持相当怀疑的态度,但是在尝试了几周之后,我迷上了。
TA贡献1890条经验 获得超9个赞
我一直使用AMD CodeAnalyst,我发现它非常易于使用并且给出了有趣的结果。我一直使用基于时间的配置文件,在该配置文件中,我发现它与我的应用程序的调试信息配合得很好,让我找到了在过程,C ++指令和单个汇编指令级别花费的时间。
- 3 回答
- 0 关注
- 362 浏览
添加回答
举报