在Java中,空检查需要多长时间?
if(someBigObject == null) //How long does this take?
throw new RuntimeException("Can't be null!");
与说i = 1
差不多吗?它是否取决于对象的大小,还是因为它检查指针而不是实际值而无关紧要?
基本上我问的原因是我有一个处理大型对象的循环,需要尽可能快地运行,而且我想知道是否对每次迭代执行null检查都会产生重大影响。
答案 0 :(得分:0)
如果您为从未使用过的分支检查一个简单的值,则CPU可以使用分支预测来几乎消除成本。也就是说,成本可能会低于亚纳秒。
在进行微优化之前,我会以实际的投入来描述成本。