IF语句中的Java-Android-Process时间(实时代码)

我有两个相同条件的代码片段:

boolean A =true;
boolean B =true;

非常简单.
但是,只有在这种情况下,两个代码中的哪一个会更快,而不是当其中一个代码是假的时候

第一个代码:

  if(A&&B){
  doSomthing();
  }

第二个代码:

if(A){
     if(B){
  doSomthing();
  }}

记住:A和B都是真的.

我只是修改和优化我的代码进行实时渲染,并且每毫秒可以在非常大的数组方面进行大的改进.

**我猜如果A = false,第二个代码会更快.但如果B =假,第一个会更快?

更多信息:在我的情况下A和B只是两个条件,如:

(mNumber==5&&arr[j]!=19)

测试后的结果:条件:A =真;和B =真;两个代码之间没有什么不同(以纳秒为单位的混合结果 – 等级结果的种类)

最佳答案 编译器很可能将这些代码转换为相同的代码.即使在“实时”代码中,也不要根据您认为最快的代码对此进行编码;写清楚代码,然后如果您认为存在问题则进行分析.

在这种情况下,如果(a& b)明显更清晰,那么使用它. (如果编译器生成不同的代码,它也将是更快的选项,因为只需要一个比较和跳转.请注意,这与&& b的规范处理不同.)

编辑:看起来您编辑了问题以更改条件&到&&当参数的评估成本很高时,短路是一个好主意,但如果它们真的是两个布尔值,那么将它们组合在一起几乎总是更便宜.

点赞