为了账号安全,请及时绑定邮箱和手机立即绑定

什么是非常简单的C ++分析器(VC ++)?

什么是非常简单的C ++分析器(VC ++)?

C++
交互式爱情 2019-11-04 09:57:42
我过去曾经使用过一些分析器,但从未发现它们特别容易。也许我选了坏的,也许我真的不知道自己在期待什么!但是我想知道是否有任何“标准”分析器可以简单地投入使用并起作用?我不认为我需要大量详细的报告,仅是为了发现主要的黑点。在这一点上,易于使用对我来说更重要。我们正在使用的是VC ++ 2008(我个人运行标准版)。我不认为IDE中有用于此目的的任何工具,通过查看主菜单看不到任何工具吗?
查看完整描述

3 回答

?
FFIVE

TA贡献1797条经验 获得超6个赞

内置VS:


如果您具有团队版,则可以使用Visual Studio分析器。


其他选项:


否则检查此线程。


轻松创建自己的:


我个人使用基于Win32 API QueryPerformanceCounter的内部构建的。您可以在一百行或更少的代码范围内制作出易于使用的好东西。


该过程很简单:在要配置的每个函数的顶部创建一个名为PROFILE_FUNC()的宏,该宏将添加到内部管理的统计信息中。然后有另一个名为PROFILE_DUMP()的宏,它将把输出转储到文本文档中。


PROFILE_FUNC()创建一个将使用RAII记录直到销毁该对象为止的时间的对象。此RAII对象的构造函数和析构函数都将调用QueryPerformanceCounter。您也可以将这些行留在代码中,并通过#define PROFILING_ON


查看完整回答
反对 回复 2019-11-04
?
喵喵时光机

TA贡献1846条经验 获得超7个赞

我建议一种非常简单的方法(通过阅读Mike Dunlavey关于SO的文章中学到了):


只是暂停程序。


进行几次以获得合理的样本。如果某个特定功能占用了程序执行时间的一半,则很有可能会很快将其赶上行动。


如果将该功能的性能提高50%,那么您只需将整体执行时间缩短25%。而且,如果您发现甚至根本不需要它(我在使用这种方法的短时间内就发现了几种此类情况),那么您只需将执行时间减少一半。


我必须承认,起初我对这种方法的有效性持相当怀疑的态度,但是在尝试了几周之后,我迷上了。


查看完整回答
反对 回复 2019-11-04
?
当年话下

TA贡献1890条经验 获得超9个赞

我一直使用AMD CodeAnalyst,我发现它非常易于使用并且给出了有趣的结果。我一直使用基于时间的配置文件,在该配置文件中,我发现它与我的应用程序的调试信息配合得很好,让我找到了在过程,C ++指令和单个汇编指令级别花费的时间。


查看完整回答
反对 回复 2019-11-04
  • 3 回答
  • 0 关注
  • 362 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信