トータルヒープ比率に最適なフリーヒープは何ですか?この比率のどの値でヒープサイズを増やすか/ヒープサイズを減らすことを検討する必要がありますか?jvm - トータルヒープ比に対する最適フリーヒープは何ですか?
答えて
、私はあなたに二つの例与えてみましょう:
例1を - あなたのプログラムが起動時にメモリの100Mの価値を割り当て、その後、残りのように、これまでどのような任意のメモリを割り当てませんその実行の。
この場合、スペースを無駄にしないように、ヒープサイズを100Mに設定する必要があります(ただし、おそらく101か何かが発生しますが...)。
例2 - プログラムは1秒あたり10Mのメモリを割り当てます。データは1秒以上持続されません。 (たとえば、多くの一時的なデータを必要とする計算をしていて、完了したら1つの整数を返します...)
正確な数値を知ることはあまり現実的ではないかもしれませんが、私と一緒に... "ライブ"データが10Mあるので、少なくとも10Mのヒープが必要です。それ以外に、ガベージコレクタがどのように動作するかを確認する必要があります。単純化すると、GCが完了するまでの時間はO(ライブセット)です。つまり、「死んだ」データの量は実際には入りません。一定のライブセットサイズでは、GC時間はヒープサイズに関係なく一定です。これによりヒープが大きくなります - >スループットが向上します。
(今、本当に台無しあなたは、ヒープの圧縮のようなものを追加して、画像がさらに少なく明確になる...)
それは問題の簡易版です 結論が、短いです答えは - それに依存します。
理想的な瞬時比は1です。理想的には、JVMは必要なメモリを正確に消費します。 )難しい目標です。)
問題点(TNilssonが指摘しているように)は、アプリケーションのメモリ要件が時間の経過とともに変化するため、一定の収集/圧縮を起こさない十分な領域を確保したいという問題がありますあなたが許容できるよりも頻繁に、あなたはそれがあなたがより多くのRAMを購入する必要がない十分なスペースをほとんど消費しないようにします。
これはおそらく、新しいオブジェクトを割り当てる割合によって異なります。ガベージコレクションには、ライブオブジェクトからの多くの作業トレース参照が含まれます。私はちょうど500MBの空き容量があり500MBの空き容量があったが、JVMがGCを実行する時間の95%を費やすほど多くの配列の割り当てが行われている状況を扱っている。したがって、ランタイムメモリの動作を忘れないでください。
「オブジェクト割り当てはJavaで本当に高速です」と言っているこれらのパフォーマンスチューニングの記事は、GC時間が1秒になると言わずに笑います。単一の簡単な答えはありません
- 1. テキストを比較する:最適なアプローチは何ですか
- 2. nullに対するチェックは何回適切ですか?
- 3. JVMの最適化はどこから始まりますか?
- 4. scipy.least_squaresの最適性は何ですか?
- 5. ライブウェブサイトのサムネイルを最適化する最適な方法は何ですか?
- 6. JavaFXのペインで絶対配置ノードを移動する最適な方法は何ですか?
- 7. Eigenfacesは顔の比較に最適ですか?
- 8. アプリをスキンするのに最適なデザインパターンは何ですか?
- 9. JVMの `-jvm-debug 5005`の変更は何ですか?
- 10. Ubuntu 14.04 DockerでJVMを最適化する
- 11. JVM命令とは何ですか?
- 12. JVMバイトコードのNOPとは何ですか?
- 13. JVMの最適化を無効にする方法
- 14. SQL:これに対して適切なクエリは何ですか?
- 15. JVM上で実行される最も速い言語は何ですか
- 16. テレビ番組のタイトルを比較するのに最適な文字列距離アルゴリズムは何ですか?
- 17. Ionic Appsで使用する最適なリッチテキストエディタは何ですか?
- 18. CMAKEで使用する最適なマルチフォームIDEは何ですか?
- 19. フォームで4つの設定に対してチェックマークを表示する最適な方法は何ですか?
- 20. sun jvmによるインライン最適化を無効にする方法は?
- 21. ツリーをトラバースするのに最も最適なアルゴリズム(アプローチ)は何ですか?
- 22. lsof JVMの対応ですか?
- 23. コンテンツを探すのに最適なエンベデッドビデオプレーヤーは何ですか?
- 24. ウェブサイトでストリームオーディオに最適な方法は何ですか
- 25. Linuxデスクトップでのプログラミングに最適なフォントは何ですか?
- 26. ウィンドウでのプログラミングに最適なキーボードマクロは何ですか?
- 27. DICOMでブール値に最も適した値は何ですか?
- 28. UITableViewCellをカスタマイズする最適な方法は何ですか?
- 29. ジョブコレクションを実装する最適なアルゴリズムは何ですか?
- 30. これを実装する最適なソリューションは何ですか?
heapsize = live set-sizeまたはそれに近い値を設定すると、ガーベジコレクションと圧縮が常に行われます。 1を達成しようとすると、ひどいパフォーマンスにつながります。 – Tnilsson
これは本当に良い点です。私はそれを説明するために編集します。 –