C 測試對比不同型別的方法呼叫的效能

2022-07-15 22:09:12 字數 1994 閱讀 3390

1. 例項方法呼叫

2. 靜態方法呼叫

3. 例項方法反射呼叫

4. 委託方法的invoke呼叫

5. 委託方法的dynamicinvoke呼叫

6.委託方法的begininvoke呼叫

1. 首先要先對測試**和測試工具的方法進行預熱處理,即先呼叫一次然方法通過jit編譯成本機的**,防止其對時間的損耗(雖然只有一點點,但是還是有影響的);

2. 關閉電腦上一些運用程式來避免其對我們測試的影響;

- 《 乙個簡單的效能計數器:codetimer 》

- 《 對老趙寫的簡單效能計數器的修改 》

我採用的**來自github:

- github

**如下:

//

迴圈測試次數

const

int iteration = 10000000;//

效能計數器

codetimer codetimer = new

codetimer();

//預熱

codetimer.initialize();

//過jit編譯,防止在產生本地**的時候的時間的消耗

test test = new

test();

test.showhelloworld(

null

);test.showhelloworldstatic(

null

);object obj = new

object

();console.writeline(

"-------------例項方法呼叫-------------");

codetimerresult result = codetimer.time(iteration, () =>);

console.writeline(result.tostring());

console.writeline(

"-------------靜態方法呼叫-------------");

result = codetimer.time(iteration, () =>);

console.writeline(result.tostring());

console.writeline(

"-------------反射呼叫-------------");

result = codetimer.time(iteration, () =>);

});console.writeline(result.tostring());

console.writeline(

"-------------委託呼叫invoke-------------");

result = codetimer.time(iteration, () =>);

console.writeline(result.tostring());

console.writeline(

"-------------委託呼叫dynamicinvoke-------------");

result = codetimer.time(iteration, () =>);

console.writeline(result.tostring());

console.writeline(

"-------------非同步呼叫-------------");

result = codetimer.time(iteration, () =>, null

); action.endinvoke(ir);

});console.writeline(result.tostring());

執行結果:

效能(好-> 差):靜態方法呼叫 > 例項方法呼叫 > 委託invoke呼叫 > 反射呼叫 > 委託dynamicinvoke呼叫 > 非同步呼叫

幾種不同型別Heap的對比

第一種 ordinary heap 我們最常用的二叉樹結構的堆,操作的時間複雜度為 make heap o 1 insert o lg n minimum o 1 extract min o lg n union o n decrease key o lg n delete o lg n 可以看出,...

C 不同型別的畫筆!

畫筆是可以與graphics物件一起用來建立實心形狀和呈現文字的物件。1.solidbrush 畫筆最簡單形式,用純色進行繪製。2.hatchbrush 類似與 1 但它可以選擇大量預設圖案,而不是純色。要命名空間 using system.drawing.drawing2d 3.texturebr...

不同型別的檔案

cpp檔案 cpp是用c 語言編寫的源 檔案的字尾 具體實現 h檔案 h是c語言和c 語言的標頭檔案 函式宣告,巨集定義,函式原型 pde檔案 一共有4種可能,分別為 1 powerdesk encrypted file 2 pathology data exchange file 3 afp pa...