首页 > 解决方案 > 在 ASP.NET MVC 中获取 DateTime.UtcNow 的成本是多少?

问题描述

我有一个方法将在一次调用中调用 100 次,我可以选择如何调用DateTime.UtcNow

现在这个问题有一个明显的答案,但现在我很好奇:获取DateTime.UtcNow?

标签: c#asp.net-mvcdatetimeasp.net-mvc-4

解决方案


DateTime.UtcNow涉及一些工作和本地调用,所以它不是完全微不足道的。

但是,您正在执行 I/O。无论您使用哪种 I/O,任何DateTime.UtcNow调用都将与 I/O 相比完全相形见绌。在我的计算机上(使用我的运行时版本、我的 Windows 版本等)进行的一个简单的调试构建测试表明,我DateTime.UtcNow每秒可以进行 700 万次调用。它甚至不使用任何 CPU。对于将明显更快的对象,无能为力。DateTime你把它保存在数据库中吗?这慢了几个数量级。你把它保存在一个文件中吗?同样,速度要慢几个数量级。你把它寄回给客户吗?同样,速度要慢几个数量级。

因此,除非您需要DateTime.UtcNow在请求期间调用十万次,否则请专注于使代码易于理解。这可能意味着存储DateTime.UtcNow在本地,或者在字段中或通过方法参数传递它;或者这可能意味着DateTime.UtcNow您想随时打电话。也许您甚至希望在同一个请求期间始终拥有相同的时间——这一切都在您的设计中。

在您真正有理由担心之前,不要担心性能。


推荐阅读