在代码中写了大量println语句,不过在服务器上部署时觉得打印语句浪费时间,请问有没有方法解决这个问题?
如果这个代码是你自己的代码,老老实实用log4j日志组件完成替换;
如果这个代码在工程依赖的jar包中,可以使用asm在ClassLoader加载类的时候进行System.out.println();代码的统一清理。
希望这个代码是你自己的代码,哈哈
推荐使用已有的日志类轮子slf4j
logback
log4j
等等。
或者根据你当前的需求,你定义一个自己的输出工具类
public class Out {
//DEBUG来控制是否为调试模式
private static final boolean DEBUG = true;
public static void println(String str){
if(DEBUG){
System.out.println(str);
}
}
}
项目里打印的时候使用
Out.println(str);
替换原来的System.out.println(str);
这一就可以做到最简单的sout输出控制了
你不用日志组件的么?记录日志是很有必要的,推荐使用logback组件,相对性能高点,另外,println也不会浪费多少时间,不会构成你的瓶颈
把他们都批量修改了不就好了吗?
System.out.println确实会浪费时间的,研究生时期做算法,用Java实现的算法,有print的时候明显比较慢,不过是毫秒级别的罢了。
建议还是换成日志组件logback, log4j之类的,省心看着还高端大气。