私は1200万エントリを含むHashMap
を持っています。 String
の値をLong
の値にマッピングします。各文字列は約10文字です。このマップでRAMに必要なメモリ量を計算することは可能ですか?オブジェクトが使用するRAMの量はどのようにして計算できますか?
答えて
JVMはメモリを割り当てて管理する必要があるため、あなたにはわかりません。つまり、ネイティブには足りない、いいえ、あなたのオブジェクトが実際にどれだけのメモリを使用しているかを知る方法はありません。
あなたは推測することができますし、マップに入る各アイテムのサイズを調べることによって、推測された推測をすることができますが、最高の教育上の推測は間違っています。
JVMには、参照を追跡し、クラスのタイプ情報を保持するために使用される他の構造があります。これは、正確で(正確な入力見積もりを出すことができるならば)推定値に固定された未知の量のメモリを追加します。
メモリの一部だけがデータを直接保持するメモリであり、メモリの一部はデータを保持するオーバーヘッドとして使用されるメモリであるため、メモリ消費をプロファイルし、メモリの予測"小さい地図を使用するとき。
JVMのプロファイリングは、JVMの実行時間、マップのアクティビティなどによってさまざまな結果が現れるように、メモリ使用量を最適化するため、難しい作業です。統計的に行う必要がありますさまざまな条件での入力のサンプリング。しかし、オッズは結局あなたが最終的に合理的な数にあなたの指を置くことができるようになります良いです。さらに重要なことに、「これは一時的にこの数字の周りでピークに達するかもしれませんが、平均してこれに落ち着くはずです」と言うことができます。静的解析では、メモリの一時的な変更が見落とされることがよくあります。
プロファイラは、プログラムによって使用されているメモリ量と、どのオブジェクトが何を使用しているかを示します。あなたのオブジェクトのメモリ使用量を見つけることができるかもしれません。
VisualVMはJava6に含まれており、この情報を提供します。
しかし、これは必ずしもメモリ要件を提供するわけではありませんが、その時点で使用しているメモリの量を見るだけです。
- 1. クリックスクロール量はどのようにしてwinformsスクロールバーで計算されますか?
- 2. RAMの割り当ては、タスクマネージャのRAM使用量を2倍にします。
- 3. PHPでのスクリプトメモリ使用量の計算?
- 4. mysqlメモリ(RAM)の使用量がResultSet使用中に増加しますか?
- 5. Azureの共有メモリ使用量はどのように計算されますか?
- 6. Safariはどのようにsvgオブジェクトのサイズを計算しますか?
- 7. 合計はどのように計算できますか? dataGridView列の値のうちどれですか?
- 8. どのように計算することができますか
- 9. Pythonで7.0またはfloat(7)を使用するのに計算量が少なくて済みますか?
- 10. 多面体の質量と慣性モーメントはどのように計算できますか?
- 11. TheanoのGPUメモリ使用量を計算するには?
- 12. Javascriptの帯域幅使用量を計算するには?
- 13. onblurとjavascriptを使用して小計を計算するにはどうすればよいですか?
- 14. MySQLのRAMの使用量は、
- 15. アプリケーションフットプリントとはどのように計算するのですか?
- 16. Luceneはマルチフィールドスコアをどのように計算しますか?
- 17. C#(マネージコード)で* THREAD *のCPU使用量やRAM使用量を取得するにはどうすればよいですか?
- 18. どのようにしてオブジェクトができますか?
- 19. は、ビデオRAM使用量のiphone
- 20. iostatのutilがどのように計算されますか?
- 21. プロセスのCPU使用量をProcess.TotalProcessorTimeから計算する
- 22. どのようにint()オブジェクトは、 "=="演算子をPython2の__eq __()メソッドなしで使用していますか?
- 23. JavaでBツリーのメモリ使用量を計算する
- 24. どのようにしてNを計算することができますか?
- 25. キーポイントを使用してオブジェクトの類似点を計算する
- 26. 英数字を変換して計算に使用するにはどうすればよいですか?
- 27. SharePoint計算フィールドの数値が10進数か整数かをどのように計算しますか?
- 28. 最適な列幅はどのように計算できますか?
- 29. あるオブジェクトと別のオブジェクトとの間の角度をどのように計算しますか?
- 30. FFMpegのCPU使用量をどのように制限できますか?
おそらく多すぎます。 :) –
正確な答えが必要なのか、このルックアップにディスクベースのアプローチを使用するかどうかを決定するために、おおよその答えを探していますか? – DJClayworth
最初に少し追加してみてください.100万のようにjmap -histo(JDKのbinディレクトリにあります)を使用して、HashMap、Strings、Longのメモリ使用量を得ることができます。 –
Koekiebox