gpt4 book ai didi

java - 创建对象使 VM 更快?

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:27:31 25 4
gpt4 key购买 nike

看这段代码:

MessageParser parser = new MessageParser();
for (int i = 0; i < 10000; i++) {
parser.parse(plainMessage, user);
}

出于某种原因,它比

运行得慢(大约 100 毫秒)
for (int i = 0; i < 10000; i++) {
MessageParser parser = new MessageParser();
parser.parse(plainMessage, user);
}

有什么想法吗?测试重复了很多次,所以它不仅仅是随机的。创建对象 10000 次怎么可能比创建一次更快?

最佳答案

因为 Java 具有“世代垃圾收集”并且可以快速识别(在循环中)它没有重复使用相同的对象/内存空间,所以 GC 成本几乎为零。另一方面,您的长生命周期对象将在 nursery generation 的世代传递中存活下来,并且必须移出到 main generation。

总而言之,如果不进行适当的测试来衡量性能,您就无法真正假设性能。

关于java - 创建对象使 VM 更快?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1484224/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com