Android中的JVM是否优化了硬编码条件?

时间:2018-02-15 14:53:03

标签: java android performance

由于调试原因,我的应用程序中代码的大多数部分都有这个代码的重复部分:

public static final boolean DEBUG = true; // just created once in a "Utility" class

  if (Utility.DEBUG)
     Log.d("TIMER", /*string message that is strictly related to context*/);

现在,如果布尔值变为false,这将成为死代码。我的问题是,在这种情况下,Android编译器是否会进行基本优化,例如常量折叠和死代码转移?

如果答案是否定的,那么在发布阶段调试日志的最佳方法是什么?

1 个答案:

答案 0 :(得分:5)

是;在static final字段的情况下,编译器可以并将删除不可到达的部分。如果您examine the byte-code,您可以自行验证。