繁体   English   中英

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

[英]Java-Android-Process time in IF statement (real time code)

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

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 =真; 两个代码之间没有什么不同(以纳秒为单位的混合结果 - 等级结果的种类)

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

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

编辑:看起来您编辑了问题以将条件从&更改为&& 短路是一个好主意,当参数是评价昂贵,但如果他们真的都boolean值, AND荷兰国际集团在一起几乎总是更便宜。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM