cao死我好湿好紧好爽动态视屏|精选久久久久久久久久|中文无码精品一区二区三区四季|AAA国语精品刺激对白视频|

當(dāng)前位置:首頁(yè) > 網(wǎng)站建設(shè) > 正文內(nèi)容

易語(yǔ)言dll反編譯成源代碼(易語(yǔ)言dll文件反編譯)

網(wǎng)站建設(shè)2年前 (2023-08-07)529

根據(jù)綜合網(wǎng)上的一些文章,精確計(jì)時(shí)主要有以下幾種方式

1 調(diào)用WIN API中的GetTickCount

從操作系統(tǒng)啟動(dòng)到現(xiàn)在所經(jīng)過(guò)的毫秒數(shù),精度為1毫秒,經(jīng)簡(jiǎn)單測(cè)試發(fā)現(xiàn)其實(shí)誤差在大約在15ms左右

缺點(diǎn):返回值是uint,最大值是2的32次方,因此如果服務(wù)器連續(xù)開機(jī)大約49天以后,該方法取得的返回值會(huì)歸零

用法:

2 調(diào)用WIN API中的timeGetTime 推薦

常用于多媒體定時(shí)器中,與GetTickCount類似,也是返回操作系統(tǒng)啟動(dòng)到現(xiàn)在所經(jīng)過(guò)的毫秒數(shù),精度為1毫秒。

一般默認(rèn)的精度不止1毫秒(不同操作系統(tǒng)有所不同),需要調(diào)用timeBeginPeriod與timeEndPeriod來(lái)設(shè)置精度

缺點(diǎn):與GetTickCount一樣,受返回值的最大位數(shù)限制。

用法:

3 調(diào)用.net自帶的方法System.Environment.TickCount

獲取系統(tǒng)啟動(dòng)后經(jīng)過(guò)的毫秒數(shù)。經(jīng)反編譯猜測(cè)它可能也是調(diào)用的GetTickCount,但是它的返回值是int,而GetTickCount與timeGetTime方法的原型中返回值是DWORD,對(duì)應(yīng)C#中的uint,難道.NET對(duì)System.Environment.TickCount另外還做了什么處理么?

缺點(diǎn):與GetTickCount一樣,受返回值的最大位數(shù)限制。

用法:

注:經(jīng)過(guò)測(cè)試,發(fā)現(xiàn)GetTickCount、System.Environment.TickCount也可以用timeBeginPeriod與timeEndPeriod來(lái)設(shè)置精度,最高可將精度提高到1毫秒。不知是什么原因?

4 調(diào)用WIN API中的QueryPerformanceCounter

用于得到高精度計(jì)時(shí)器(如果存在這樣的計(jì)時(shí)器)的值。微軟對(duì)這個(gè)API解釋就是每秒鐘某個(gè)計(jì)數(shù)器增長(zhǎng)的數(shù)值。

如果安裝的硬件不支持高精度計(jì)時(shí)器,函數(shù)將返回false需要配合另一個(gè)API函數(shù)QueryPerformanceFrequency。

QueryPerformanceFrequency返回硬件支持的高精度計(jì)數(shù)器的頻率,如果安裝的硬件不支持高精度計(jì)時(shí)器,函數(shù)將返回false。

展開全文

用法:

longa = 0; QueryPerformanceFrequency( refa); longb = 0, c = 0; QueryPerformanceCounter( refb); Thread.Sleep( 2719); QueryPerformanceCounter( refc); Console.WriteLine((c - b) / ( decimal)a); //單位秒

精度為百萬(wàn)分之一秒。而且由于是long型,所以不存在上面幾個(gè)API位數(shù)不夠的問(wèn)題。

缺點(diǎn):在一篇文章看到,該API在節(jié)能模式的時(shí)候結(jié)果偏慢,超頻模式的時(shí)候又偏快,而且用電池和接電源的時(shí)候效果還不一樣(筆記本)

原文地址:http://delphi.xcjc.net/viewthread.php?tid=1570

未經(jīng)過(guò)超頻等測(cè)試,如果是真的,那該API出來(lái)的結(jié)果就可能不準(zhǔn)。

5 使用.net的System.Diagnostics.Stopwatch類 推薦

Stopwatch 在基礎(chǔ)計(jì)時(shí)器機(jī)制中對(duì)計(jì)時(shí)器的刻度進(jìn)行計(jì)數(shù),從而測(cè)量運(yùn)行時(shí)間。如果安裝的硬件和操作系統(tǒng)支持高分辨率性能的計(jì)數(shù)器,則 Stopwatch 類將使用該計(jì)數(shù)器來(lái)測(cè)量運(yùn)行時(shí)間;否則,Stopwatch 類將使用系統(tǒng)計(jì)數(shù)器來(lái)測(cè)量運(yùn)行時(shí)間。使用 Frequency 和 IsHighResolution 兩個(gè)靜態(tài)字段可以確定實(shí)現(xiàn) Stopwatch 計(jì)時(shí)的精度和分辨率。

實(shí)際上它里面就是將QueryPerformanceCounter、QueryPerformanceFrequency兩個(gè)WIN API封裝了一下,如果硬件支持高精度,就調(diào)用QueryPerformanceCounter,如果不支持就用DateTime.Ticks來(lái)計(jì)算。

用法:

6 使用CPU時(shí)間戳進(jìn)行更高精度計(jì)時(shí)

該方法的原理我不是很明白,硬件知識(shí)太匱乏了。精度是ns

在C#中要用該方法必須先建立一個(gè)托管C++項(xiàng)目(因?yàn)橐獌?nèi)嵌匯編),編譯成DLL供c#調(diào)用,有點(diǎn)麻煩。

C++代碼:

// MLTimerDot.h# pragmaonce usingnamespaceSystem; namespaceMLTimerDot{ //得到計(jì)算機(jī)啟動(dòng)到現(xiàn)在的時(shí)鐘周期unsigned __ int64 GetCycleCount( void) {_asm _emit 0x0F_asm _emit 0x31} //聲明 .NET 類public__gc classMLTimer{ public: MLTimer( void) {} //計(jì)算時(shí)鐘周期UInt64 GetCount( void) { returnGetCycleCount; }};}

C#調(diào)用:

易語(yǔ)言dll反編譯成源代碼(易語(yǔ)言dll文件反編譯)

longa = 0; QueryPerformanceFrequency( refa); MLTimerDot.MLTimer timer = newMLTimerDot.MLTimer; ulongss= timer.GetCount; Thread.Sleep( 2719); Console.WriteLine((timer.GetCount - ss) / ( decimal)a);

缺點(diǎn):和QueryPerformanceCounter一樣,結(jié)果不太穩(wěn)定。

我的結(jié)論:常規(guī)應(yīng)用下timeGetTime完全夠用了,將精度調(diào)到1毫秒,大部分境況都?jí)蛴?。System.Diagnostics.Stopwatch由于調(diào)用方便,也推薦使用

來(lái)源公眾號(hào):dotNET編程大全

版權(quán)聲明:本文來(lái)源于網(wǎng)友收集或網(wǎng)友供稿,僅供學(xué)習(xí)交流之用,如果有侵權(quán),請(qǐng)轉(zhuǎn)告小編或者留言,本公眾號(hào)立即刪除。

支持小薇

關(guān)注公眾號(hào) ↑ ↑ ↑: DotNet開發(fā)跳槽 ?

點(diǎn)分享

點(diǎn)收藏

點(diǎn)點(diǎn)贊

點(diǎn)在看

掃描二維碼推送至手機(jī)訪問(wèn)。

版權(quán)聲明:本文由飛速云SEO網(wǎng)絡(luò)優(yōu)化推廣發(fā)布,如需轉(zhuǎn)載請(qǐng)注明出處。

本文鏈接:http://m.smallwaterjetsystem.com/post/48535.html

“易語(yǔ)言dll反編譯成源代碼(易語(yǔ)言dll文件反編譯)” 的相關(guān)文章

寧波制作網(wǎng)站公司(寧波制作網(wǎng)站公司有哪些)

寧波制作網(wǎng)站公司(寧波制作網(wǎng)站公司有哪些)

本篇文章給大家談?wù)剬幉ㄖ谱骶W(wǎng)站公司,以及寧波制作網(wǎng)站公司有哪些對(duì)應(yīng)的知識(shí)點(diǎn),希望對(duì)各位有所幫助,不要忘了收藏本站喔。 本文目錄一覽: 1、寧波模板網(wǎng)站制作哪家好 2、寧波集團(tuán)網(wǎng)站制作哪家好 3、寧波做網(wǎng)站哪家公司好? 4、寧波網(wǎng)站建設(shè)哪個(gè)比較好 5、寧波模板網(wǎng)頁(yè)開發(fā)哪家好 6、寧...

諸城網(wǎng)站制作(諸城門戶網(wǎng)站)

諸城網(wǎng)站制作(諸城門戶網(wǎng)站)

今天給各位分享諸城網(wǎng)站制作的知識(shí),其中也會(huì)對(duì)諸城門戶網(wǎng)站進(jìn)行解釋,如果能碰巧解決你現(xiàn)在面臨的問(wèn)題,別忘了關(guān)注本站,現(xiàn)在開始吧!本文目錄一覽: 1、諸城標(biāo)牌制作一年掙多錢 2、維云傳媒/壽光網(wǎng)站建設(shè)哪家好/諸城網(wǎng)站建設(shè)哪家好 3、諸城有什么好網(wǎng)站,大家告訴我吧 做廣告比較使用的,做廣告比較好的...

ps模板免費(fèi)素材下載(PS素材免費(fèi)下載)

ps模板免費(fèi)素材下載(PS素材免費(fèi)下載)

本篇文章給大家談?wù)刾s模板免費(fèi)素材下載,以及PS素材免費(fèi)下載對(duì)應(yīng)的知識(shí)點(diǎn),希望對(duì)各位有所幫助,不要忘了收藏本站喔。 本文目錄一覽: 1、在哪里可以下載最新免費(fèi)的PS素材模板和相冊(cè)設(shè)計(jì)教程 2、PS有哪些免費(fèi)的素材網(wǎng)站? 3、哪里有PS免費(fèi)的PSD模板 在哪里可以下載最新免費(fèi)的PS素材模板和...

怎么建網(wǎng)站(如何自己創(chuàng)建一個(gè)網(wǎng)站)

怎么建網(wǎng)站(如何自己創(chuàng)建一個(gè)網(wǎng)站)

今天給各位分享怎么建網(wǎng)站的知識(shí),其中也會(huì)對(duì)如何自己創(chuàng)建一個(gè)網(wǎng)站進(jìn)行解釋,如果能碰巧解決你現(xiàn)在面臨的問(wèn)題,別忘了關(guān)注本站,現(xiàn)在開始吧!本文目錄一覽: 1、怎么樣建網(wǎng)站 2、如何建立網(wǎng)站 3、怎樣建一個(gè)自己的網(wǎng)站 怎么樣建網(wǎng)站 很容易??!首先你要會(huì)做網(wǎng)頁(yè)(因?yàn)榫W(wǎng)站是由一大堆網(wǎng)頁(yè)組成的哦)!一般...

娛樂(lè)新聞開頭模板(娛樂(lè)新聞的開頭)

娛樂(lè)新聞開頭模板(娛樂(lè)新聞的開頭)

本篇文章給大家談?wù)剨蕵?lè)新聞開頭模板,以及娛樂(lè)新聞的開頭對(duì)應(yīng)的知識(shí)點(diǎn),希望對(duì)各位有所幫助,不要忘了收藏本站喔。 本文目錄一覽: 1、出于淤泥而不染,娛樂(lè)圈沒(méi)有負(fù)面新聞的女星都有誰(shuí)? 2、中考手抄報(bào)模板 3、科技新聞發(fā)布會(huì)怎么寫啊.. 4、我的空間換不成模板呢?誰(shuí)能幫幫我?。肯戎x謝了! 出...

個(gè)人主頁(yè)網(wǎng)頁(yè)設(shè)計(jì)教程(個(gè)人網(wǎng)站主頁(yè)怎么設(shè)計(jì))

個(gè)人主頁(yè)網(wǎng)頁(yè)設(shè)計(jì)教程(個(gè)人網(wǎng)站主頁(yè)怎么設(shè)計(jì))

本篇文章給大家談?wù)剛€(gè)人主頁(yè)網(wǎng)頁(yè)設(shè)計(jì)教程,以及個(gè)人網(wǎng)站主頁(yè)怎么設(shè)計(jì)對(duì)應(yīng)的知識(shí)點(diǎn),希望對(duì)各位有所幫助,不要忘了收藏本站喔。 本文目錄一覽: 1、如何設(shè)計(jì)個(gè)人網(wǎng)頁(yè)? 2、怎樣制作個(gè)人網(wǎng)站 3、如何建立自己的個(gè)人主頁(yè)? 4、請(qǐng)問(wèn):創(chuàng)建個(gè)人網(wǎng)站(非免費(fèi))的具體(盡量具體)步驟 5、如何設(shè)計(jì)一個(gè)...