自動化與簡易性設計
利用類對象構造函數和析構函數的執行特性(它們分別在聲明和銷毀時執行),性能測試類的計時是在構造函數開始的,計算與報告某個操作的執行時間是在析構函數中進行的。測試儀提供毫秒級的結果。實現過程中將使用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]; //指針數組
文章來源于領測軟件測試網 http://www.kjueaiud.com/