VS2010中的Profile(性能剖析)功能十分实用,它可以协助程序员迅速锁定当前程序的性能瓶颈,为程序的优化做准备。
点击VS2010的Analyze菜单,选择Launch Performance Wizard,依照提示可以很方便地完成Profile的必需配置。可能你会碰到"Injection of runtime library failed"错误,这时就不要使用Wizard,而要选择Analyze下拉菜单中的Profiler->Attach/Detach...,将Profiler附加到进程上。
本文以名为Sorting的小程序为例。程序中除了main函数之外,定义了全局函数SortData和PrintData分别实现排序和打印功能。核心代码如下所示:
- //! SortAndPrint definition
- /*!
- \param iNum 待排序数组大小
- \param data 待排序数组首指针
- \return 函数执行成功则返回1
- - 三种方式排序
- -# 冒泡排序
- -# 数组+STL sort
- */
- bool SortData(int &iNum,int* data)
- {
- int temp;
- //! 冒泡排序
- for(int i=1;i<iNum;++i)
- {
- for(int j=0;j<iNum-i;++j)
- {
- if(data[j]>data[j+1])
- {
- temp=data[j];
- data[j]=data[j+1];
- data[j+1]=temp;
- }
- }
- }
- return 1;
- }
- //! PrintData definition
- /*!
- 打印有序数列到屏幕
- \param iNum 待排序数组大小
- \param data 待排序数组首指针
- \return 函数执行成功则返回1
- */
- bool PrintData(int &iNum,int* data)
- {
- //! 输出有序数列
- for(int i=0;i<iNum;++i)
- {
- if(i%50==0)
- {
- //system("pause");
- }
- _tprintf_s(_T("%d\n"),data[i]);