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

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

相关推荐
良木生香1 小时前
【数据结构-初阶】详解栈和队列(1)---栈
c语言·数据结构·算法·蓝桥杯
菠萝地亚狂想曲1 小时前
使用C语言操作LUA栈
c语言·junit·lua
东华万里1 小时前
第十五讲 指针 从本质吃透 C 语言指针(上)
c语言·开发语言
Logic1012 小时前
深入理解C语言if语句的汇编实现原理:从条件判断到底层跳转
c语言·汇编语言·逆向工程·底层原理·条件跳转·编译器原理·x86汇编
恶魔泡泡糖2 小时前
最小系统组成部分
c语言·单片机
iCxhust3 小时前
8088单板机C语言汇编混合编程实验方法与步骤
c语言·汇编·单片机·嵌入式硬件·微机原理
雨落在了我的手上3 小时前
C语言入门(二十八):动态内存管理(2)
c语言·开发语言
小龙报4 小时前
【算法通关指南:基础算法篇】高精度专题:一篇破除超数运算问题
c语言·数据结构·c++·算法·链表·贪心算法·visual studio
Yupureki4 小时前
《算法竞赛从入门到国奖》算法基础:入门篇-双指针
c语言·开发语言·数据结构·c++·算法·visual studio
努力努力再努力wz4 小时前
【Linux网络系列】:网络+网络编程(UDPsocket+TCPsocket)
java·linux·c语言·开发语言·数据结构·c++·centos