Java 基准测试 - 为什么第二个循环更快?
2022-08-31 21:30:11
我对此感到好奇。
我想检查哪个函数更快,所以我创建了一些代码,并执行了很多次。
public static void main(String[] args) {
long ts;
String c = "sgfrt34tdfg34";
ts = System.currentTimeMillis();
for (int k = 0; k < 10000000; k++) {
c.getBytes();
}
System.out.println("t1->" + (System.currentTimeMillis() - ts));
ts = System.currentTimeMillis();
for (int i = 0; i < 10000000; i++) {
Bytes.toBytes(c);
}
System.out.println("t2->" + (System.currentTimeMillis() - ts));
}
“second”循环更快,所以,我认为来自hadoop的Bytes类比String类中的函数更快。然后,我改变了循环的顺序,然后c.getBytes()变得更快。我执行了很多次,我的结论是,我不知道为什么,但是在第一个代码执行后,我的VM中发生了一些事情,因此第二个循环的结果变得更快。