我想計算Java中兩個HashMap的內存使用情況,並執行了這兩種方法。在java中計算HashMap的內存使用情況
1)我用visualVM我得到如下結果。
它只是Hashmap指針的大小而不是這個Hashmap的實際內存使用量?
2)我運行下面的代碼填充兩個HashMaps,結果得到了''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);
我剛纔問了這個問題,以確保我的第二個結果是正確的這兩個哈希表的空間使用的正確值。我對麼?
我會在任何情況下信任#2作爲測量技術。 –
並儘可能#1變,那就是在哈希映射,它不佔'HashMap's完整的內存消耗通常直接採取節點對象的字節數。 –
路易,我只是好奇,越來越運行情況足跡哪些方法你在谷歌使用?或者你會如何解決這個問題?提前致謝 – Cootri