1

jhat は Java ヒープ ダンプを分析するための優れたツールですが、大きなヒープの場合、多くの時間を浪費しがちです。jhat のランタイム ヒープが小さすぎると、失敗してメモリ不足になるまでに 15 分かかる場合があります。

私が知りたいのは、ヒープダンプファイルのサイズに基づいて jhat を与える必要がある -Xmx ヒープの量に関する経験則はありますか? 今のところ、バイナリ ヒープ ダンプのみを考慮しています。

いくつかの非常に限られた実験では、ヒープ ダンプのサイズの少なくとも 3 ~ 4 倍であることが示されています。-J-mx12G を使用して、3-and-change ギガバイトのヒープ ファイルを分析できました。

他の誰かがより決定的な実験データを持っていますか、または jhat が実行時にヒープオブジェクトをどのように表すかを理解していますか?

データポイント:

  • このスレッドは 5 倍のオーバーヘッドを示していますが、後期モデルの jhats (1.6.0_26) での私の実験では、それほど悪くはないことが示されています。
  • このスレッドは、約 10 倍のオーバーヘッドを示しています
  • 同僚が 10 倍の理論を支持しています: 2.5gb ヒープファイルは -J-mx23G で失敗します
  • さらに別の同僚は、4.4 倍のオーバーヘッドで、30 GB のヒープで動作する 6.7 GB のダンプを取得しました。
4

0 に答える 0