gpt4 book ai didi

java - 如何计算一个对象使用了多少 RAM?

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

我有一个包含 1200 万个条目的 HashMap。它将 String 值映射到 Long 值。每个字符串大约有十个字符长。是否可以计算出这张 map 需要多少 RAM 内存?

最佳答案

您可以猜测,并且您可以通过查看 map 中每个项目的大小来做出有根据的猜测,但您最有根据的猜测将会是错误的。

JVM 还有其他结构用于跟踪引用并保存类的类型信息。这将为准确(如果您能提供准确的输入估计)估计添加固定但未知的内存量。

由于只有部分内存是直接保存数据的内存,而部分内存是用作保存数据的开销的内存,因此您需要分析内存消耗并根据内存“增长”的预测进行估计使用较小的 map 时。

请注意,分析 JVM 是一项棘手的任务,因为它正在优化内存使用,这种方式会根据 JVM 运行的时间、Map 的 Activity 等呈现不同的结果。您需要进行统计采样各种条件下的输入;但是,很有可能您最终能够找到一个合理的数字。更重要的是,您还可以说“嗯,它可能会暂时达到这个数字附近的峰值,但平均应该稳定在这个数字”。在静态分析中,内存的时间变化经常被忽视。

关于java - 如何计算一个对象使用了多少 RAM?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5340503/

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