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;
}

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

相关推荐
C++ 老炮儿的技术栈3 小时前
什么是函数重载?为什么 C 不支持函数重载,而 C++能支持函数重载?
c语言·开发语言·c++·qt·算法
inputA4 小时前
【LwIP源码学习6】UDP部分源码分析
c语言·stm32·单片机·嵌入式硬件·网络协议·学习·udp
JANYI20184 小时前
嵌入式设计模式基础--C语言的继承封装与多态
java·c语言·设计模式
小_楠_天_问6 小时前
第二课:ESP32 使用 PWM 渐变控制——实现模拟呼吸灯或音调变化
c语言·嵌入式硬件·mcu·esp32·arduino·pwm·esp32-s3
秋山落叶万岭花开ღ6 小时前
C语言顺序表应用详解:从理论到实践
c语言
2301_803554526 小时前
c++和c的不同
java·c语言·c++
小狗祈祷诗7 小时前
day20-线性表(链表II)
c语言·数据结构·链表
白露秋488 小时前
C——五子棋小游戏
c语言·游戏
柒柒的代码学习日记10 小时前
C语言内存函数
c语言
whoarethenext12 小时前
c/c++爬虫总结
c语言·c++·爬虫