C语言100ms周期运行时间不够,测量C++程序运行时间

有个很奇怪的现象,我自认为写得好的文章阅读量只有一百多,随手写的却有一千多——要么是胡搞,要么是比较浅显。纵观博客园里众多阅读过万的文章,若非绝世之作,则必为介绍入门级知识的短文。为了让我的十八线博客上升到十七线,我打算写几篇短文。当然,短不等于随便,不等于不负责任。客观的,要有确凿的依据,代码必须调通;主观的,观点尽量全面。

前两天写C++值多态,最后有一个性能比较,需要测量程序运行的时间,于是我重温了相关知识,现整理如下。

C风格

在C程序和C++11以前的C++程序中,测量程序运行时间一般使用clock函数和CLOCKS_PER_SEC常量,定义在中。

clock_t是一种能表示时钟周期数的算术类型,在MSVC和GCC中都是long。

clock函数返回自一个与程序执行相关的时间起至调用时刻经过的时钟周期数,类型为clock_t。由于起始时间是由实现定义的,clock函数的返回值没有直接的意义,只有两次调用clock的结果之差才有意义。

CLOCKS_PER_SEC表示一秒有多少个时钟周期,在MSVC和GCC中都是1000,即C风格时间测量的精度为1毫秒。如果long的大小是4字节,clock溢出需要24天,一般情况下足够使用。

#include

#include

int work()

{

int sum = 0;

for (int i = 0; i < 1e8; ++i)

sum += i * i;

return sum;

}

int main()

{

clock_t start, finish;

start = clock();

volatile int result = work();

finish = clock();

printf("%fms\n", (double)(finish - start) / CLOCKS_PER_SEC * 1000);

}

C++风格

从C++11起,C++提供了更加现代的时间工具,定义在中,namespace std::

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值