克己性能测试类[VC/C++编程]
本文“克己性能测试类[VC/C++编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
商业软件包常常价钱高贵,并且需求一个历程之后才能有效地利用它们.针对这一点,本文拟实现一个简单有效的类,它能自动计算并报告函数、循环和代码块履行的时间.
自动化与简易性计划
操纵类对象构造函数和析构函数的履行特点(它们辨别在声明和销毁时履行),性能测试类的计时是在构造函数开始的,计算与报告某个操作的履行时间是在析构函数中举行的.测试仪供应毫秒级的后果.实现历程中将利用clock()返回程序开始后的处理器时钟时间(与平台相关的时间单位).宏CLK_TCK表示特定机械每秒时钟数.
性能测试类定义以下:
#include <time.h>
class stopwatch
{
public:
stopwatch() : start(clock()){} //开始计时
~stopwatch();
private:
clock_t start;
};
构造函数将成员start初始化为当前的时钟.除了析构函数外没有定义别的的成员函数.析构函数再次调用clock(),计算构造对象后经过的时间并显示后果:
#include <iostream>
using namespace std;
stopwatch::~stopwatch()
{
clock_t total = clock()-start; //得到所用时间
cout<<"此操作所用时间: "<<total<<endl;
cout< <"转换成秒数: "<< double(total/CLK_TCK) <<endl;
}
注意clock_t和CLK_TCK是整数.因此在举行除法操作前必须将它们转换成double范例.为了延时屏幕输出,在析构函数中可以加上下列代码:
char dummy;
cin >>dummy; //延时屏幕输出
别的也可以将差别性能侧面的后果写入性能日记文件.
用所成立的类测试性能
为了对代码块举行测试,先在代码块的开始成立一个本地类实例,假定要测试的代码是下列循环:
string *pstr[5000]; //指针数组
for (int i=0;i<5000;i++)
{
pstr[i] = new string;
}
此循环在堆中分配5000个串对象.
用大括弧将上面的代码块括起来并在代码块开始声明类对象实例:
{
stopwatch watch; // 开始计时
string *pstr[5000];
for (int i=0;i<5000;i++)
{
pstr[i] = new string;
}
} // 摧毁计时器并报告后果
以上是“克己性能测试类[VC/C++编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |