VS2010中的Profile(性能剖析)功能十分实用,它可以协助程序员迅速锁定当前程序的性能瓶颈,为程序的优化做准备。
点击VS2010的Analyze菜单,选择Launch Performance Wizard,依照提示可以很方便地完成Profile的必需配置。可能你会碰到"Injection of runtime library failed"错误,这时就不要使用Wizard,而要选择Analyze下拉菜单中的Profiler->Attach/Detach...,将Profiler附加到进程上。
本文以名为Sorting的小程序为例。程序中除了main函数之外,定义了全局函数SortData和PrintData分别实现排序和打印功能。核心代码如下所示:
测试用例为50000个随机整数,采用冒泡排序,程序对应的Sample Profiling Report如图1所示。
图1 采用冒泡排序,程序对应的哦Sample Profiling Report
修改SortData的代码为:
这里调用了STL中的sort函数模板,程序对应的Sample Profiling Report如图2所示。
图2 调用STL sort函数模板,程序对应的Sample Profiling Report
观察图1和图2中的CPU Usage曲线,一定程度上图2更优一些;观察Hot Path(即调用热路径),已经从图1中的SortData转移到图2中的Unknown Function;另外,函数独占工作时间也发生了变化,图2显示耗费最大的已经不再是SortData函数了。
VS2010同样提供了对比工具,将图1和图2各自的Sample Profiling Report进行Compare,如图3所示。
非常明显,核心的函数调用,调用了STL sort模板函数的新程序对资源的消耗要小很多。
上面的例子说明,借助于VS2010 Profiler,可以迅速锁定当前程序的性能瓶颈,如本例中的SortData函数,为程序的优化做准备;程序优化之后,Profiler也是一个必要的验证工具,只有比较优化前后程序Profiling Report才能确定程序是否真的得到了优化。
【性能分析】初探VS2010中的Profile(性能剖析)功能,布布扣,bubuko.com
【性能分析】初探VS2010中的Profile(性能剖析)功能
原文地址:http://www.cnblogs.com/For-her/p/3817636.html