gpt4 book ai didi

Android Java编译器优化

转载 作者:太空狗 更新时间:2023-10-29 13:38:51 24 4
gpt4 key购买 nike

我有这样的代码:

MyLog.d("TAG", "debug string " + aVariable + " more debug string =" + anotherVariable);

MyLog类就像

public void d(String tag, String message) {
private static final boolean DEBUG = true;
if (DEBUG) {
Log.d(tag, message);
}
}

我的问题是,如果我将 DEBUG 设置为 false,android java 编译器是否会智能地检测到这行代码

MyLog.d("TAG", "debug string " + aVariable + " more debug string =" + anotherVariable);

什么都不做

它不会为 "debug string "+ aVariable + "more debug string ="+ anotherVariable 创建临时字符串对象

最佳答案

您在与 DEBUG 相关的任何事情之前进行字符串连接:我怀疑 ProGuard 会优化它,尽管调用 Log.d < em>inside MyLog.d 会消失。

如果您检查了字节码,就值得反馈;我很好奇 ProGuard 将遵循调用链多远来检测死代码。如果字符串连接消失了,我会感到惊讶。

您也不能像在方法中那样声明变量 private

关于Android Java编译器优化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8098998/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com