gpt4 book ai didi

java - 计算java中一个HashMap的内存占用

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:06:21 44 4
gpt4 key购买 nike

我想计算Java中两个HashMap的内存占用,我做了这两个方法。

1) 我使用 visualVM 并得到以下结果。

它只是 Hashmap 指针的大小而不是这个 Hashmap 的实际内存使用量吗?

因为,它只使用了“67283648”字节。 enter image description here

2) 我运行了以下填充两个 HashMap 的代码,结果得到了“576132056”字节。

    Runtime runtime = Runtime.getRuntime();
long memory = runtime.totalMemory()- runtime.freeMemory();
HashMap<String, TypePosting> typeInvIndex=qpu.loadInvTypeIndex();
HashMap<Integer,String> map=qpu.loadMapTypeEntityId();
long memory1 = runtime.totalMemory()- runtime.freeMemory();
System.out.println(memory1- memory);

我只是问这个问题,以确保我的第二个结果是这两个 Hashmap 的正确空间使用值。我说得对吗?

最佳答案

恕我直言,在运行时查找 java 对象实例内存占用的最佳(精确且易于实现)方法是使用 Instrumentation 接口(interface)并实现简单的 java 代理。

这是一种常见的做法,网络上有大量的操作方法和代码示例。 Just one example (您可以将其用作起点)

关于java - 计算java中一个HashMap的内存占用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36293094/

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