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