2 回答

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

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