Java HashMapの1つのエントリのメモリオーバーヘッドは? (64ビットOracle Hotspot JVMを使用)。たとえば、それは24または32バイトですか?Java 7 HashMapの単一のエントリ(キーと値のペア)のメモリオーバーヘッドは何ですか? (64ビットOracle Hotspot JVMを使用)
1
A
答えて
1
HashMap.Entry
(Java 6)またはHashMap.Node
(Java 8)のサイズで、どちらもint
と3つの参照があります。
基準は、4バイト(OOPS圧縮)、次いで、12バイトのヘッダ+ 4バイトint
+ 3 * 4バイトの基準= 28バイトである場合、8バイト境界に収まるように32バイトに丸め。
参照は8バイト、その後、16バイトのヘッダ+ 4バイトint
+ 3 * 8バイトの基準= 44バイトである場合、8バイト境界に収まるように48バイトに丸め。
0
HashMapコレクションは、エントリごとに32バイト、エントリ配列に4バイト*マップ容量を要します。
関連する問題
- 1. これは32ビットまたは64ビットのJVMですか?
- 2. Java Web Startと64ビットJVM
- 3. Windows 10でJavaプロセスで使用する最大ヒープサイズ64ビットJVMを実行する64ビットJVM
- 4. 64ビットOS上の32ビットJVMを使用したJNA
- 5. 1.6 JVMを使用したSPARCハードウェア上の64ビットと32ビットのパフォーマンス
- 6. mavenは64ビットjvmを使用していません
- 7. Javaハッシュマップ - StdinからHashMapへのキー値のペア
- 8. JVMとHotSpotの違いは?
- 9. 64ビットのDLLを32ビットのJVMにロードできますか?
- 10. のJavaサービスラッパー3.2.3 64ビット
- 11. Java Hashmapのタイピングシステムとは何ですか?
- 12. 64ビットのDLLを64ビットのJavaプログラムでロードできません
- 13. シフトと加算を使用する64ビット整数のモジュロ7
- 14. java HashMap内の単一のキーに2つの値を関連付ける
- 15. 64ビットWindows 7上でODBCの32ビット版を使用しますか?
- 16. IntelliJ - 64ビットJVMで32ビットSWTライブラリをロードできません
- 17. のpython dict.update対添字は、単一のキー/値のペア
- 18. 実行Windows 7の64ビット
- 19. 64ビットマシンでJVM 32ビットがクラッシュする
- 20. Windows 7のMinGW 64ビット
- 21. Windows 7用Biopythonインストール64ビット
- 22. Java HashMapキー値の格納と取得
- 23. Windows 7(64ビット版)のAppInit_DLL
- 24. キーと値のペア
- 25. GCTaskThreadでJVM(64ビット1.5.0._22)がクラッシュする
- 26. 単一の "1"ビットのSHA-256ハッシュとは何ですか?
- 27. JavaのHashmapの値からキーを簡単に取得するには
- 28. JProfiler 5.2.4 + IBM WAS 7 64ビット、Java 1.6
- 29. 64ビットJavaで最大安全なJVMヒープサイズを推定する
- 30. 64ビットJVMで劇的に多くのメモリを使用するSpringブート