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 关注
- 112 浏览
添加回答
举报