3

谁能告诉我在 c# 中检查对象或对象的属性是否为空的性能成本是多少?我正在开发一个 ASP.NET MVC 应用程序,该应用程序正在模型中完成空值检查,然后在视图中再次完成。我觉得这太过分了,但如果没有真正的性能受到影响,那么我看不出以这种方式做事有什么害处。

4

3 回答 3

5

如果您在渲染和初始化模型时只执行一次,我认为它是不可测量的。

但是,如果它位于计算密集型循环中,则会产生影响。

查询数据库、读/写文件等是您应该注意的。

于 2012-08-28T19:03:42.063 回答
3

几乎是微不足道的。这样做两次不是问题。做几十亿次可能仍然不是问题(但会表明其他一些编程问题)

于 2012-08-28T19:05:13.820 回答
1

好吧,当然会有一些性能损失,检查是否为空需要一些指令......

如果您想尽量减少性能损失,请使用 ILDASM 工具查看您正在使用的方法的 CIL 代码,并检查正在发生的实际执行路径。我什至会说:确保您使用的是 Object.ReferenceEquals 之类的东西(而不是实例的 Equals 方法或相等运算符)。

于 2012-08-28T19:06:32.327 回答