亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在 ASP.NET MVC 中獲取 DateTime.UtcNow 的成本有多大?

在 ASP.NET MVC 中獲取 DateTime.UtcNow 的成本有多大?

C#
犯罪嫌疑人X 2023-08-13 14:05:45
我有一個方法,一次調用將被調用幾百次,并且我可以選擇如何調用DateTime.UtcNow:DateTime.UtcNow在方法內部請求,DateTime.UtcNow每次都會獲取;或者作為DateTime.UtcNow該方法的參數,并且僅獲取一次(但DateTime對于每個保存的條目,保存的值將相隔幾毫秒,但這很好)。現在這個問題有了明顯的答案,但現在我很好奇:獲取 的成本是多少DateTime.UtcNow?
查看完整描述

2 回答

?
慕神8447489

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或者這可能意味著您可以隨時打電話。也許您甚至希望在同一請求期間始終擁有相同的時間 - 這都在您的設計中。

在您確實有理由擔心之前,不要擔心性能。


查看完整回答
反對 回復 2023-08-13
?
慕碼人8056858

TA貢獻1803條經驗 獲得超6個贊

默認情況下,系統時鐘無論如何僅每 15 毫秒更新一次,因此在您的方法中反復檢查時間沒有任何優勢。

至于方法本身的效率——檢查參考來源。它對 CLR 進行一次調用來獲取文件時間。其余部分是在優化的struct.?這不太可能花費大量時間。


查看完整回答
反對 回復 2023-08-13
  • 2 回答
  • 0 關注
  • 154 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號