2 回答

TA貢獻1780條經(jīng)驗 獲得超1個贊
DateTime.UtcNow
涉及一些工作和本機調(diào)用,因此這并非完全微不足道。
但是,您正在執(zhí)行 I/O。無論您正在執(zhí)行哪種類型的 I/O,任何DateTime.UtcNow
調(diào)用都將與 I/O 相比完全相形見絀。DateTime.UtcNow
在我的計算機上(使用我的運行時版本、我的 Windows 版本等)進行的調(diào)試構(gòu)建和無編譯器優(yōu)化的簡單測試表明,我每秒可以進行 700 萬次調(diào)用。它甚至不使用任何CPU。對于這個對象,你沒有什么可以做的,DateTime
它會明顯更快。你把它保存在數(shù)據(jù)庫中嗎?這要慢幾個數(shù)量級。您將其保存在文件中嗎?同樣,速度慢了幾個數(shù)量級。你把它寄回給客戶嗎?同樣,速度慢了幾個數(shù)量級。
因此,除非您需要在請求期間調(diào)用DateTime.UtcNow
十萬次,否則請重點關(guān)注使代碼易于理解。這可能意味著存儲DateTime.UtcNow
在本地,或者在字段中或通過方法參數(shù)傳遞;DateTime.UtcNow
或者這可能意味著您可以隨時打電話。也許您甚至希望在同一請求期間始終擁有相同的時間 - 這都在您的設(shè)計中。
在您確實有理由擔(dān)心之前,不要擔(dān)心性能。

TA貢獻1803條經(jīng)驗 獲得超6個贊
默認情況下,系統(tǒng)時鐘無論如何僅每 15 毫秒更新一次,因此在您的方法中反復(fù)檢查時間沒有任何優(yōu)勢。
至于方法本身的效率——檢查參考來源。它對 CLR 進行一次調(diào)用來獲取文件時間。其余部分是在優(yōu)化的struct
.?這不太可能花費大量時間。
- 2 回答
- 0 關(guān)注
- 131 瀏覽
添加回答
舉報