私はおそらく1つの疑問を持っています。私は現在、CSPソルバーchocoとjacopをテストしています。私はアプリのプロファイリング(グラフ着色、約3000ノード)を実行すると、私は完全に結果を理解していない。Javaで使用されるヒープと割り当てられたオブジェクトのサイズ
プロファイラによって宣言された使用済みヒープスペースは、約1GBのメモリです。作成されるすべてのオブジェクトの合計は100MB未満です。他の900MBのRAMはどこにありますか?
私はメソッド呼び出し(ソルバーは多分大量のバックトラックを使用しています)がスタック上に配置されていると思いますので、ここでは問題ではありません。スレッド内
が例外「メイン」java.lang.OutOfMemoryErrorを::GCオーバーヘッドの制限は
だから、それはそう
を超え、残りは未回収の未使用イマイチことを私はXmxののPARAMを使用して最大メモリを削減すると、アプリは例外で失敗しますメモリ(この場合、GCはそれを排除して失敗することになります)。ありがとうございました。
Allocated Object Sizeビジュアライザにはフィルタがありませんか?どのプロファイラを使用していますか?また、データが感覚的でない場合は、プロファイラの結果を貼り付けてください。 –
私はnetbeansプロファイラを使用しています - http://img405.imageshack.us/i/profilerd.png/使用されたメモリの最後のポイントは374MBです(まだ割り当てられたオブジェクトよりも)... – malejpavouk
ピーク時(ライブ中結果は)、最大の配列は約30MBです(他のものはそれに比例して小さくなります)... – malejpavouk