san*_*lto 4 java performance exception
我一直认为使用"if"比捕获异常更好(在性能方面).例如,这样做:
User u = Users.getUser("Michael Jordan");
if(u!=null)
System.out.println(u.getAge());
Run Code Online (Sandbox Code Playgroud)
与
User u = Users.getUser("Michael Jordan");
try{
System.out.println(u.getAge());
}catch(Exception e){
//Do something with the exception
}
Run Code Online (Sandbox Code Playgroud)
如果我们对此进行基准测试,则很明显第一个片段比第二个片段快.这就是我一直以来的想法.但是,昨天,一个人告诉我这样的事情:
您是否考虑过在数千次执行程序中会发生什么?每次你的执行都通过你的"如果"你有一点(真正的小,但仍然是某些)性能成本.除了例外,它不会发生.因为它永远不会出现.
为了说清楚:数千次执行"if"与一个异常捕获.
我认为它有道理,但没有任何证据.
你能帮助我吗?
谢谢!!
永远都不要牺牲你的代码质量来达到性能,直到你已经证明它超出了合理的怀疑,它实际上是需要的.我非常怀疑if()语句的性能是否会成为你编程的瓶颈.如果是这样,你应该用C重写它.在Java领域,99%的时间瓶颈是I/O--磁盘和/或网络.