这更像是一个好奇心问题,声明之间是否有任何性能差异.
if(value == null)
Run Code Online (Sandbox Code Playgroud)
和
if(null == value)
Run Code Online (Sandbox Code Playgroud)
是不是很明显,我经常使用c#,PHP和javascript,我记得有人说如果(null == value)更快,但它真的吗?
我将很快开始开发一个应用程序,该应用程序将解析Terabytes区域中的大量数据,因此即使性能增益在毫秒级范围内,也会产生影响.有人有主意吗?
duf*_*ymo 20
我怀疑无论哪种方式都有可衡量的性能优势.我敢打赌告诉你的人没有任何硬数据.
据我所知,这是一个历史文物,一种来自C和C++的技术来防范这个错误:
if (c = null) {
}
Run Code Online (Sandbox Code Playgroud)
如果您反转参数,编译器将捕获此信息,因为您无法将某些内容赋值为null.
我描述了超过1亿次迭代.
if(value == null)
- 6.85175704956秒(每个68.5纳秒)
if(null == value)
- 6.75543808937秒(每个67.5纳秒)
因此,如果1纳秒足以获得增益,那么由您决定.
绝对没有预期的性能差异.
使用(丑陋)形式的唯一原因 (if null == value)是避免C/C++特定的拼写错误:
if (value = null) // compiles but _assigns_ null to value and always returns false
... // never executed
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7045 次 |
| 最近记录: |