前言
开发过程中在代码加入合理日志记录是非常重要的,经常会在代码中看见循环语句里面出现日志记录。
问题
在循坏中加入日志是否合理?
如果在导入百万级数据或者亿级数据是否会对性能产生影响呢?
如果有兴趣了解,不妨我们一起进入代码实验室来看一看
案列
/**
* log日志耗时顺带System.out.println
*
* @author 熊猫程序猿
* @date 2020年1月16日
*/
@Slf4j
public class Demo {
public static void main(String[] args) {
int count = 1_0000;
long a = System.currentTimeMillis();
a(count);
a = System.currentTimeMillis() - a;
long b = System.currentTimeMillis();
b(count);
b = System.currentTimeMillis() - b;
long c = System.currentTimeMillis();
c(count);
c = System.currentTimeMillis() - c;
System.out.println("循坏耗时:" + a);
System.out.println("log循坏耗时:" + b);
System.out.println("out循坏耗时:" + c);
}
private static void a(int count) {
ArrayList list = Lists.newArrayList();
for (int i = 0; i < count; i++) {
list.add(i);
}
}
private static void b(int count) {
ArrayList list = Lists.newArrayList();
for (int i = 0; i < count; i++) {
list.add(i);
log.info(list.size() + "");
}
}
private static void c(int count) {
ArrayList list = Lists.newArrayList();
for (int i = 0; i < count; i++) {
list.add(i);
System.out.println(list.size());
}
}
}
分析
1万循坏:
十万循环:
百万循环:
千万循环:
一亿循环:
总结
循环次数 | 循环耗时 | log循环耗时 | out循环耗时 |
---|---|---|---|
1万 | 5 | 76 | 52 |
十万 | 13 | 923 | 477 |
百万 | 40 | 4602 | 3269 |
千万 | 3001 | 26828 | 29777 |
一亿 | 41742 | 355691 | 356253 |
由上可得:
应该尽量避免在循坏中打印日志。
先赞后看,养成习惯,欢迎收看一个行走的熊猫程序猿,下期再见