gpt4 book ai didi

Java未请求的内存分配

转载 作者:行者123 更新时间:2023-11-29 09:35:18 25 4
gpt4 key购买 nike

在 JConsole 下观察到的以下代码显示堆大小不断增加。堆达到最大 25mb,然后 GC 运行并将堆大小减少到几乎 3MB。这是预期的行为吗?我很惊讶!

public class Dummy {
public static void main(String[] args) {
System.out.println("start");
while(true){
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}

我正在使用 Snow Leopard。

最佳答案

与 jconsole 的通信导致对象被分配。我相信您在这里看到的是您的测量方法的产物。编译代码时,HotSpot 也可能会进行轻微分配。如果您担心,请使用分析器查看正在分配的内容(再次注意分析器界面的分配)。

正常的 GC 行为是为了避免不必要的运行。您将在整个网络上看到内存使用情况的锯齿图。在高速缓存和交换友好性和避免工作之间存在一些折衷。此外,服务器 HotSpot 比客户端 HotSpot 更容易耗尽内存。

关于Java未请求的内存分配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2089296/

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