【发布时间】:2015-07-31 13:44:11
【问题描述】:
在传递多个字符串进行日志记录时,最好使用可变参数还是字符串连接?
日志将在生产环境中被禁用。
考虑下面的代码,
public void log(int logLevel, String ... msg) {
if (logLevel >= currentLogLevel) {
for (String m : msg) {
// print the log to file
}
}
}
// calling
log(2, "text1", var1, "text2");
对比
public void log(int logLevel, String msg) {
if (logLevel >= currentLogLevel) {
// print the log to file
}
}
// calling
log(2, "text1" + var1 + "text2");
哪一个在两种情况下都表现良好(启用/禁用)?
【问题讨论】:
-
每当我们进行字符串操作时,它都会创建一个新字符串。字符串操作是资源消耗。
标签: java performance logging