小编use*_*766的帖子

Java String =""与新String("")性能更改

我在这篇文章中做了相同的测试: new String()vs literal string performance

意思是我想测试哪一个性能更好.正如我所料,结果是文字的分配更快.我不知道为什么,但我做了测试与一些更多的任务,我发现了一些奇怪:当我让程序做循环分配超过10000次的文字是相对没有那么多比少超过10000级更快的任务.并且在重复1.000.000时,它甚至比创建新对象更慢.

这是我的代码:

double tx = System.nanoTime();
for (int i = 0; i<1; i++){
    String s = "test";
}
double ty = System.nanoTime();

double ta = System.nanoTime();
for (int i = 0; i<1; i++){
    String s = new String("test");
}
double tb = System.nanoTime();

System.out.println((ty-tx));
System.out.println((tb-ta));
Run Code Online (Sandbox Code Playgroud)

我让它像上面写的那样运行.我只是在学习Java,而我的老板让我做测试,在我提出测试结果后,他让我找到答案,为什么会这样.我在谷歌或stackoverflow上找不到任何东西,所以我希望有人可以帮助我.

factor at         1 repetition   3,811565221
factor at        10 repetitions  4,393570401
factor at       100 repetitions  5,234779103
factor at     1,000 repetitions  7,909884116
factor at    10,000 repetitions  9,395538811
factor at   100,000 …
Run Code Online (Sandbox Code Playgroud)

java string performance microbenchmark

1
推荐指数
1
解决办法
251
查看次数

标签 统计

java ×1

microbenchmark ×1

performance ×1

string ×1