gpt4 book ai didi

java - TreeMap 放置 100 个元素(每个 1MB),而堆只有 80 MB 内存,这种情况下的行为是什么?

转载 作者:行者123 更新时间:2023-12-02 09:51:00 27 4
gpt4 key购买 nike

堆空间只有 80 MB 可用内存。我们需要在 TreeMap 中放入 100 个元素(每个元素 1MB)。

当第 80 个元素放入 Map 时,这种情况下的行为是什么?在这种情况下垃圾收集将如何工作?处理这种情况的有效方法是什么?

最佳答案

这有点不清楚,因为您将KeyValue放入Map,而不是个别元素。我假设您的“键 + 值”合计将为您提供 1MB。

如果它们确实每个都有 1MB - 你的内存会比你放入 TreeMap 中的 50 个元素快得多,因为每个对象都有 2 个 header (在典型虚拟机上组合12 字节);涉及填充+每个键+值都被包装到内部的Entry中,这也增加了一些开销。

GC 不会给你太大帮助,你的内存本来就有限;您的虚拟机因 OutOfMemory 而崩溃。当您接近限制时,GC 将被触发(这在很大程度上取决于所使用的 GC 和输入参数),但由于没有太多需要清理的内容 - 如果有的话,它基本上不会做太多事情。

关于java - TreeMap 放置 100 个元素(每个 1MB),而堆只有 80 MB 内存,这种情况下的行为是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56322316/

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