探讨性能测试中的计时问题
2010-08-15 20:47:50 来源:WEB开发网核心提示:2. 封装计时函数2.1. 数据结构为了维 护计时结果,我们定义如下几个数据:#define BENCHMARK_MAX_COUNT 20double gStarts[BENCHMARK_MAX_COUNT];double gEnds[BENCHMARK_MAX_COUNT];double gCounters [BEN
2. 封装计时函数
2.1. 数据结构
为了维 护计时结果,我们定义如下几个数据:
#define BENCHMARK_MAX_COUNT 20
double gStarts[BENCHMARK_MAX_COUNT];
double gEnds[BENCHMARK_MAX_COUNT];
double gCounters [BENCHMARK_MAX_COUNT];
double dfFreq = 1;
其中, BENCHMARK_MAX_COUNT定义了需要计时的模块总数,20表示最多可以定时20个模块 ,该值可以根据具体应用而定。gStarts和gEnds分别用于保存开始计时和终止计 时的计数器的值,gCounters用来保存计时结果。全局变量dfFreq用来保存上文介 绍的时钟频率,如图 2所示。
2.2. 初始化InitBenchmark()
初始 化函数InitBenchmark()包括两部分内容:
对数组gStarts, gEnds, gCounter清零;
获得机器内部定时器时钟频率。
InitBenchmark() 代码如下所示:void InitBenchmark()
{
ResetBenchmarkCounters();
GetClockFrequent();
}
该函数一般在程序运行最初调用。
更多精彩
赞助商链接