C 測試程式執行時間

2021-09-02 23:20:23 字數 2227 閱讀 8040

我們應當忘記小的效能優化,百分之九十七的情況下,過早的優化都是萬惡之源

這句話在很多時候都被引用到,以至於"不要優化"(注意,是"不要優化"而不是「不要過早優化」)已經深入人心,過度地推崇這條建議經常會成為如下行為的藉口

還有另乙個常識:優化是不重要的,這條常識的理由,在程式設計師工具箱中最強大的優化技術就是不做優化

有幾個理由支援這條禪式的忠告:其中乙個是摩爾定律的指數效應----最聰明,最便宜,常常也是最迅速的效能提公升方法,就是等上幾個月,期待硬體效能更好

但是,時代是會變化的,如今,單個核心的效能增長非常慢,而且,如今的程式還必須執行在移動平台上(已經成為大多數),電池的電量和散熱都制約了指令的執行效率,而優化,可以讓程式永遠保持活力

而且說效能無所謂的,只限於某些程式,對於工作負載很大以至於需要分布式處理的程式,效能影響就會非常大,以至於小小的優化都能節約莫大的成本,例如從1000臺雲主機將到只需600臺

1.使用更好的編譯器,然後開啟它們的優化選項

2.使用更好的演算法,而不是英勇地去改進演算法

3.使用更好的庫

4.減少記憶體分配和複製,這是乙個很有用的優化手段

5.使用更好的資料結構

6.提高並發行

之前使用了gtest測試框架,覺得gtest的測試用例所使用的形式深的我心,於是仿照其形式寫了乙個測試執行時間的,如下

**

#include

#include

#include

using

namespace std::chrono;

namespace _timetest

void

clear()

void

start()

bool

isstarted()

const

unsigned

long

getms()

return0;

}private

: system_clock::time_point m_start;};

class

timebasetest

static timerbase timer;};

timerbase timebasetest::timer;

std::queue

> tests;

}#define test_class(test_case_name) \

class test_class_##test_case_name : public _timetest::timebasetest \

void run();\

};\/* test_class_instance

* 1.delcare the test class test_class_test_case_name

* 2.get a instance of the class

* 3.define the run() for the class

* */

#define test_class_instance(test_case_name) \

test_class(test_case_name);\

auto test_case_name##_instance = new test_class_##test_case_name;\

void test_class_##test_case_name::run()

#define timetest(test_case_name) test_class_instance(test_case_name)

#define runalltimetest(); \

while(!_timetest::tests.empty())\

\intmain()

將上面的**儲存為timetest.h然後使用的測試**如下

#include

"timetest.h"

timetest

(test_1)

timetest

(test_2)

然後執行g++ test.cpp -std=c++11編譯,執行結果如下

準備工作完成之後,讓我們開始優化之旅

C 測試程式執行時間

1.時間測試 datetime starttime datetime.now timespan timespan 程式主體 timespan datetime.now.subtract starttime 獲取就是開始時間很結束時間差 2.用於.net環境的時間測試 只測試 在自身程序中的時間 ne...

C語言測試程式執行時間

clock t clock void 這個函式返回從 開啟這個程式程序 到 程式中呼叫clock 函式 時之間的cpu時鐘計時單元 clock tick 數,在msdn中稱之為掛鐘時間 wal clock 其中clock t是用來儲存時間的資料型別,在time.h檔案中,可以找到它的定義,顯然clo...

C 程式執行時間

在c 程式的效能分析中,其中重要的一項就是程式的執行時間。雖然程式的執行速度與計算機的配置 計算機的當前狀態等有很大關係,但在相對一致的外部環境下,程式執行時間的長短在很大程度上是可以反映程式效率的。1.一般計時方法 在ctime標頭檔案中,c 提供了計時函式 clock 其返回資料型別為 cloc...