本文整理汇总了C++中Stopwatch::usec方法的典型用法代码示例。如果您正苦于以下问题:C++ Stopwatch::usec方法的具体用法?C++ Stopwatch::usec怎么用?C++ Stopwatch::usec使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Stopwatch
的用法示例。
在下文中一共展示了Stopwatch::usec方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1:
int
main()
{
Stopwatch sw;
BUS bus;
int i;
int r;
uint64_t N, NR;
int score = 0;
float realscore;
printf("BUSIF = %s\n", BUSIF_NAME);
busif_init(NULL);
/* まずざっと時間を測定。さすがに1秒かからないと想定 */
sw.Start();
for (i = 0; i < 10000; i++) {
busif_060.read_long(bus);
}
sw.Stop();
/* 1秒程度になるようなループ回数 N を求める */
NR = ((uint64_t)1000 * 1000 * 10000 / sw.usec());
/* 10進 リスケーリング。計算結果が人間に分かりやすい。 */
N = 1;
while (NR > 10) { N *= 10; NR /= 10; }
printf("N=%qd\n", N);
sw.Reset();
sw.Start();
for (i = 0; i < N; i++) {
busif_060.read_long(bus);
}
sw.Stop();
r = print_result("long", sw);
score += r * 76;
sw.Reset();
sw.Start();
for (i = 0; i < N; i++) {
busif_060.read_byte(bus);
}
sw.Stop();
r = print_result("byte", sw);
score += r * 12;
sw.Reset();
sw.Start();
for (i = 0; i < N; i++) {
busif_060.read_word(bus);
}
sw.Stop();
r = print_result("word", sw);
score += r * 12;
/*
* score の単位は N * 100 * msec の BWL平準化アクセス時間。
* 一般化するため、1/100 msec 間に BWL平準化アクセス可能な回数に
* 変換する。
*/
realscore = (float)N / score;
printf("score: %f\n", realscore);
return 0;
}