3

私は完全に正常に動作するプログラムを持っています。しかし、その後 5 ~ 6 日間は正常に動作し、その後殺されSIGKILLます。メモリが問題であることに気付いたとき、割り当てが行われた場所で厳密な割り当て解除を行いました。

topメモリ使用量を監視するためにlinuxコマンドを使用しています。

現在のところ、プログラムは正常に動作しています。しかし、コマンドのVIRT仮想メモリ属性はtopゆっくりと増加しています。どうしてこんなことに?必要な場所にあるものの割り当てを解除しています。

前もって感謝します。:)

4

2 に答える 2

8

Linux で開発している場合は、アプリケーションを でコンパイルしg++ -Wall -g、警告が表示されなくなるまで改善し、gdbおよびvalgrindを使用してメモリ リークをデバッグします。

おそらく、 Boehm の保守的なガベージ コレクタの使用に興味があるかもしれません。

メモリの断片化についてもお読みください。

于 2012-12-03T13:14:25.653 に答える
1

valgrindを使用して、メモリの管理ミスをチェックできます。

しばらくアプリケーションを実行して、考えられるメモリの問題を確認してください。

于 2012-12-03T13:17:41.690 に答える