Diy*_*yko 4 java performance tostring
我们正在开发相当大的服务器应用.每个操作都由日志跟踪.调用toString方法的日志很多.不幸的是,我们需要其中大部分,另一方面我们无法追踪生产中发生的事情.尝试改进toString方法是否有意义?例如,将toString的结果放在内存中,并在某些字段更新时更新.
example of my toString
public classs InMessage{
//declared 20+ fields
@Override
public String toString() {
StringBuilder builder = new StringBuilder(this.getClass().getSimpleName());
builder.append(": [");
builder.append(super.toString());
builder.append("; updateTime: ");
builder.append(updateTime);
//forexample 20 fields here
builder.append(";]");
return builder.toString();
}}
then we process InMessage in some way and log each action
log.debug("We received inMessage: {}", inMessage);
Run Code Online (Sandbox Code Playgroud)
在讨论之后,我们决定减少可能的日志数量,仅此而已.
除非您正在积极地遇到性能或内存问题,否则不要担心.有用的日志可以极大地帮助产品诊断,你需要权衡那些可能永远不会发生的假设性能问题.
(不是说你肯定会在这里没有问题,只是不要为那些不是真正问题的东西进行优化......)
编辑:相信你是否记录"太多"; 如果单个UI或服务操作生成20页的附带/调试级别信息,即使在INFO级别日志记录中,您可能希望优化内容以使其真正有用