我正在阅读这个文档页面:http://developer.android.com/reference/android/util/Log.html,其中这个部分引起了我的注意:
这意味着 Android 编译器将字符串连接 (+) 转换为 StringBuilder 和 append 语句。 我的假设是否正确,还是手动使用 StringBuilder 比字符串连接更好?提示:不要忘记,当您进行以下调用时:
Log.v(TAG, "index=" + i);
在构建传递给 Log.d 的字符串时,编译器使用一个 StringBuilder 并至少发生三次分配:StringBuilder 本身、缓冲区和 String 对象。现实情况是还有另一个缓冲区分配和复制,并且垃圾回收器承受更多压力。这意味着,如果您的日志消息被过滤掉,您可能正在做大量工作并产生重大开销。