随笔-341  评论-2670  文章-0  trackbacks-0
    这几天使用Performance Wizard搞了一下我的那个东西,结果发现瓶颈在一个很不可思议的地方,当然总的原因是因为虚函数调太多了,所以得修改修改。不过还好,还是有不破坏设计的办法的。

    Performance Wizard是Visual Studio自带的一个工具。使用的时候很简单,首先找Analyze -> Launch Performance Wizard...,出来一个向导。第一个页面选你要做检查的工程,第二个页面在Sampling和Instrumentation之间作选择(我一般选择后面的),完成了之后就会出来一个叫Performance Explorer的窗口,里面有建立好的性能检测文件,当然是不保存的,一般来说也不用保存。Performance Explorer的根节点跟你的解决方案同名,右键选择Properties,在Sampling的Sample Event里面选择Performance Counter,好了大功告成。

    想启动很简单,首先将你的编译指向Release,然后选择Performance Explorer根节点下面Targets目录下面的一个跟工程同名的节点,点击Performance Explorer工具栏上有绿色箭头的按钮,然后就开始了。上面的配置将性能分析指到了最精确的一种方法,因此运行的时候慢,而且产生的文件特别大,建议在超级好的机器上使用。不然的话就只好使用Sampling而不是Instrumentation了。这个时候Performance Wizard会编译你的工程然后执行一直到结束,执行的过程中记录下很多信息。注意在Vista或以上操作系统,Visual Studio要用管理员权限打开才能正常使用Performance Wizard。

    之后就一直等,完了就会有一张超级详细的报表出来,这个时候切换到“Call Tree”报表,上面一个火苗样子的工具栏按钮按下去就自定寻找性能瓶颈并定位。这个Call Tree就是Call Stack在整个程序执行过程中的变化情况,附加信息非常详细,非常好用。

    慢慢享受吧,啊哈哈。
posted on 2010-04-16 20:42 陈梓瀚(vczh) 阅读(2986) 评论(10)  编辑 收藏 引用 所属分类: VL++3.0开发纪事

评论:
# re: Vczh Library++3.0之使用Performance Wizard检查性能瓶颈 2010-04-16 21:26 | 空明流转
10.0的Wizard更牛逼。。。  回复  更多评论
  
# re: Vczh Library++3.0之使用Performance Wizard检查性能瓶颈 2010-04-17 07:36 | radar
你是我们的楷模~~  回复  更多评论
  
# re: Vczh Library++3.0之使用Performance Wizard检查性能瓶颈 2010-04-17 08:37 | 陈昱(CY)
苹果的xcode也有一个叫Instrument的东西,横向时间轴,竖向一些内存使用量、泄漏位置、函数调用开销等等。。。总之看起来确实像Instrument

不过在苹果上弄开发仍然是煎熬,效率低,svn垃圾........  回复  更多评论
  
# re: Vczh Library++3.0之使用Performance Wizard检查性能瓶颈 2010-04-21 06:56 | 2A
我是来打酱油的。。。验证码居然是(5678)  回复  更多评论
  
# re: Vczh Library++3.0之使用Performance Wizard检查性能瓶颈 2010-04-22 20:31 | 陈梓瀚(vczh)
@2A
天意啊  回复  更多评论
  
# re: Vczh Library++3.0之使用Performance Wizard检查性能瓶颈 2010-04-27 02:51 | coder
请问你在那谁的blog中回调函数那个回帖中说用std::function<T>,std::function<T>这个怎么当回调函数用??  回复  更多评论
  
# re: Vczh Library++3.0之使用Performance Wizard检查性能瓶颈 2010-04-27 20:26 | 陈梓瀚(vczh)
@coder
void 囧(int parameter)
{
cout<<parameter<<endl;
}

std::function<void(int)> callback=&囧;
callback(100);  回复  更多评论
  
# re: Vczh Library++3.0之使用Performance Wizard检查性能瓶颈 2010-04-27 20:27 | 陈梓瀚(vczh)
@coder
当然成员函数也是可以的,复杂用法见MSDN  回复  更多评论
  
# re: Vczh Library++3.0之使用Performance Wizard检查性能瓶颈 2010-04-30 15:34 | 小米
@陈梓瀚(vczh)
std::function<T>这东西是标准stl?头文件是啥  回复  更多评论
  
# re: Vczh Library++3.0之使用Performance Wizard检查性能瓶颈 2010-04-30 21:45 | 陈梓瀚(vczh)
@小米
MSDN  回复  更多评论
  

只有注册用户登录后才能发表评论。
【推荐】超50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理