gpt4 book ai didi

java - JIT 能够优化内存分配吗?

转载 作者:行者123 更新时间:2023-12-01 21:54:39 25 4
gpt4 key购买 nike

这是来自 VisualVM 的一个简单应用程序的 GC 图,该应用程序通过 websocket 监听一些传入的数据流...一开始它会产生大量垃圾,但正如您所看到的,随着时间的推移它会变得更好...是这样吗JIT 以某种方式找出如何避免创建对象?

enter image description here

最佳答案

在一些非常特殊的情况下,JIT 可以删除分配,从而减少 GC 的压力。主要有escape analysis 。基本上,如果对象仅存在于一种方法中并且从不离开它,则可以将其分配在堆栈而不是堆上,从而减少垃圾收集器的工作。如果您想确定:您可以禁用逃逸分析:使用命令行参数 -XX:-DoEscapeAnalysis 并查看图形是否发生变化。

然而,还存在许多其他自调整机制。就像运行时系统注意到您不需要那么多内存一样,因此开始减少堆大小。你的图表将与此匹配。由于大部分内存始终可以被释放,内存系统减少了堆大小:GC 更频繁但更小。

关于java - JIT 能够优化内存分配吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34559804/

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