1

私のプログラムでは、すべての状態がアトム内の巨大なマップに保持されており、各反復で純粋関数のロードによって更新されます。ヒープサイズが増加していると判断しましたが、原因となるコードを見つけるにはどうすればよいですか?VisualVMを試しましたが、一般的な情報が表示され、状態のどの部分が成長していて、どの関数がそれを成長させているのかがわかりません。

4

1 に答える 1

1
  1. with-openの使用を忘れたり、シーケンスの先頭にぶら下がったりするなど、一般的な落とし穴を探します。

  2. コードの小さなセグメントを分離し、JVisualVMを使用して同じ種類のメモリの増加が見られるかどうかを確認します。ある部分をノックアウトまたはモックしても違いがない場合は、元に戻します。違いがある場合は、それに焦点を合わせて、何が起こっているのかを理解できます。

私は銀の弾丸のツールやテクニックを知りません。それは分割統治のプロセスであり、コードで何をしているのかを考えています。

于 2012-10-09T03:27:32.863 に答える