今天就跟大家聊聊有關(guān)C#中怎么測量cpu性能,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。
清徐ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場景,ssl證書未來市場廣闊!成為創(chuàng)新互聯(lián)公司的ssl證書銷售渠道,可以享受市場價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:13518219792(備注:SSL證書合作)期待與您的合作!
C#測量cpu性能代碼如下:
privatevoidShowRunTime()
{
TimeSpants1=Process.GetCurrentProcess().TotalProcessorTime;
Stopwatchstw=newStopwatch();
stw.Start();
intCircles=1000;
for(inti=0;i<Circles;++i)
{
Console.WriteLine(i.ToString());
}
doubleMsecs=Process.GetCurrentProcess().
TotalProcessorTime.Subtract(ts1).TotalMilliseconds;stw.Stop();
Console.WriteLine(string.Format("循環(huán)次數(shù):{0}CPU時(shí)間(毫秒)={1}實(shí)際時(shí)間(毫秒)={2}",
Circles,Msecs,stw.Elapsed.TotalMilliseconds,stw.ElapsedTicks));Console.WriteLine(string.Format("1tick={0}毫秒",
stw.Elapsed.TotalMilliseconds/stw.Elapsed.Ticks));}
程序輸出如下:
循環(huán)次數(shù):1000 CPU時(shí)間(毫秒)=50.072 實(shí)際時(shí)間(毫秒)=666.9071 tick = 0.0001毫秒
可以看出在這個(gè)例子中,兩者差距比較大,其原因如下:
1)Windows是多任務(wù)操作系統(tǒng),按照線程為單位對cpu時(shí)間輪詢分配。即一個(gè)程序運(yùn)行的中途,可能被剝奪cpu資源,供其他程序運(yùn)行。
2)程序本身會有不占用cpu時(shí)間的等待過程。這個(gè)等待可能是我們程序主動的,比如啟動一個(gè)進(jìn)程,然后等待進(jìn)程的結(jié)束;也可能是我們沒有意識到的,如例子 的Console.WriteLine方法,猜想其內(nèi)部進(jìn)行了一系列的異步I/O操作然后等待操作的完成,這其間并沒有占用調(diào)用進(jìn)程的cpu時(shí)間,但耗費(fèi) 了很多等待時(shí)間。
總結(jié):
1 C#測量cpu性能,應(yīng)該用程序運(yùn)行時(shí)間來測量,當(dāng)然也需要使用cpu時(shí)間作為參考,如果兩者差距很大,需要考慮為何出現(xiàn)這種情況。
2 .Net的Stopwatch類可以精確到1/10000毫秒,基本可以滿足測量精度。
看完上述內(nèi)容,你們對C#中怎么測量cpu性能有進(jìn)一步的了解嗎?如果還想了解更多知識或者相關(guān)內(nèi)容,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。
網(wǎng)站欄目:C#中怎么測量cpu性能
標(biāo)題路徑:http://jinyejixie.com/article32/pgejsc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供搜索引擎優(yōu)化、做網(wǎng)站、域名注冊、動態(tài)網(wǎng)站、關(guān)鍵詞優(yōu)化、電子商務(wù)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)