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...