首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C >> C 語言實例練習

C語言練習實例93:clock()函數測量空循環執行時間

     編輯:C 語言實例練習

C語言練習實例93:clock()函數測量空循環執行時間

本實例演示如何使用 clock() 函數測量一段代碼(此處為 1000 萬次空循環)的 CPU 執行時間。

程序分析

  • clock_t 類型變量 start、finish 分別記錄循環前後的時鐘計數。
  • 時間差除以 CLOCKS_PER_SEC 得到秒數。
  • 輸出結果為雙精度浮點數。

源代碼

// Created by www.runoob.com on 15/11/9.
// Copyright © 2015年 菜鳥教程. All rights reserved.
//
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main() {
    long i = 10000000L;
    clock_t start, finish;
    double TheTimes;

    printf("做%ld次空循環需要的時間為", i);
    start = clock();
    while (i--);
    finish = clock();

    TheTimes = (double)(finish - start) / CLOCKS_PER_SEC;
    printf("%f秒。\n", TheTimes);

    return 0;
}

運行結果

做10000000次空循環需要的時間為0.025367秒。

注意

  • clock() 返回的是進程佔用的 CPU 時間,而非牆鐘時間。
  • 現代優化編譯器可能會優化掉空循環,導致測量時間極短或為 0,建議在循環體內加入不可優化的操作(如讀取 volatile 變量)。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved