43 - clock()函数

文章目录

  • [1 函数原型](#1 函数原型)
  • [2 参数](#2 参数)
  • [3 返回值](#3 返回值)
  • [4 示例](#4 示例)

1 函数原型

clock():测量程序消耗的处理器时间,函数原型如下:

c 复制代码
clock_t clock (void);

ctime库描述如下:

复制代码
Clock program
1. Returns the processor time consumed by the program.
2. The value returned is expressed in clock ticks, which are units of time of a constant but system-specific length (with a relation of CLOCKS_PER_SEC clock ticks per second).
3. The epoch used as reference by clock varies between systems, but it is related to the program execution (generally its launch). 
4. To calculate the actual processing time of a program, the value returned by clock shall be compared to a value returned by a previous call to the same function.
  1. clock()函数功能:用于测量程序执行过程中消耗的处理器时间,以时钟滴答(clock ticks)为单位;时钟滴答是一种长度恒定但系统特定的时间单位,具体长度可能在不同的系统中有所不同,与CLOCKS_PER_SEC相关;
  2. 处理器时间:CPU实际用于执行程序的时间,而不是程序在等待输入或其他操作时的时间;
  3. 时钟滴答:每个系统都有自己的时钟频率,CLOCKS_PER_SEC表示每秒钟有多少个时钟滴答;将时钟滴答数除以CLOCKS_PER_SEC,可以将时钟滴答转换为秒;
  4. 时间参考点:clock()函数的返回值是从程序启动到当前时刻的时钟滴答数,不同系统的起始点可能不同,但通常是程序运行的开始;
  5. 比较调用:要获取程序的实际运行时间,需要在程序的不同阶段调用clock()函数并比较它们的返回值,这样可以得出在这些调用之间消耗的处理器时间。

2 参数

clock()函数的参数为void。

3 返回值

clock()函数返回值类型为clock_t类型:

  1. 返回从程序启动到调用clock()函数所经过的处理器时间,单位为时钟滴答。

ctime库描述如下:

复制代码
Return Value
1. The number of clock ticks elapsed since an epoch related to the particular program execution.
2. On failure, the function returns a value of -1.
3. clock_t is a type defined in <ctime> as an alias of a fundamental arithmetic type.

4 示例

示例代码如下所示:

c 复制代码
int main() {
   //
   clock_t start = 0;
   clock_t end = 0;
   double cpu_time_used = 0.0;
   // 
   start = clock();

   printf("大循环开始前 : %ld\n", start);
   // 假设的耗时操作  
   for (long long i = 0; i < 1000000000; i++) {
   }
   //
   end = clock();

   printf("大循环结束后 : %ld\n", end);
   //
   cpu_time_used = ((float)(end - start)) / CLOCKS_PER_SEC;
   //
   printf("大循环消耗的CPU时间 : %.3f seconds\n", cpu_time_used);
   //
   return 0;
}

代码运行结果如下图所示:

相关推荐
l1t3 小时前
在arm64 Linux系统上编译tdoku-lib的问题和解决
linux·运维·服务器·c语言·cmake
secondyoung3 小时前
Git使用:rebase用法
c语言·经验分享·git·vscode
kklovecode3 小时前
C语言之头文件,宏和条件编译
c语言·开发语言·算法
n***33354 小时前
C语言轮子大赛:挑战底层,突破极限
c语言·开发语言
范纹杉想快点毕业4 小时前
C语言100个经典编程练习题(完整标题+清晰排版)
运维·c语言·单片机·嵌入式硬件·算法
松涛和鸣5 小时前
54、DS18B20单线数字温度采集
linux·服务器·c语言·开发语言·数据库
e***98575 小时前
C语言轮子大赛:从零打造经典轮子
c语言·开发语言
小乔的编程内容分享站5 小时前
C语言常见关键字
c语言
Aaron15885 小时前
基于RFSOC 49DR+VU13P的64通道VPX架构波束成形技术分析
c语言·人工智能·算法·架构·信息与通信·信号处理·基带工程
Yupureki6 小时前
《算法竞赛从入门到国奖》算法基础:入门篇-贪心算法(上)
c语言·数据结构·c++·算法·贪心算法·visual studio