0

メモリ リークと思われる問題が発生しています。コードを実行すると、アプリケーションがクラッシュするまでメモリ使用量が増加し続けます。

私は GC.start を使用して、未使用のオブジェクトがすべて削除されていることを確認しています。私も ObjectSpace モジュールを使用して犯人を追跡していますが、何が起こっているのか理解できていません。

このファイルhttps://www.dropbox.com/s/0j75ylcsj3rs0ro/Log_1.txtに、ObjectSpace count_objects の出力を記録しました。コマンドからの最初の出力は、1 つの大きな for ループの前にあります。各ループの最後に GC.start を使用します。私が見たところ、オブジェクトの総数は for ループの間一定のままですが、アプリケーションが使用するメモリは増え続けています。

コードの簡素化されたバージョンは、このリンクにあります https://www.dropbox.com/s/5fnludxurs1ljy8/Shading.rb

4

1 に答える 1

1

問題が解決しました!大文字の変数を使用すると、定数と見なされ、再割り当てしてもメモリが解放されないことがわかりました。大文字で始まる 5 つの変数があり、ループ内でそれらを数百万回再割り当てしていました。小文字に変更すると問題が解決しました。もうメモリの問題はありません。

于 2014-08-12T08:54:13.457 に答える