0

データベースのバックアップまたはその一部をビルドするためのコントローラー機能を作成しましたが、作成したファイルを送信した後に割り当てられたメモリーは解放されません。Activerecordはビルドファイルの後にメモリーを解放しません

rack-mini-profiler gemで行われたメモリ使用レポートは、メモリの大部分がActiveReccordによって占有されており、最後に解放されないことを示しています。完全なレポートはhereです。

+0

コードを助けている場合、私に教えてくださいません| | F SEND_DATA f.read、タイプ: 'アプリケーション/ ZIP'、ファイル名 "#{MODEL_NAME} .zipファイル" 端File.delete(zip_data_path) –

答えて

0

ここでは、メモリの問題を軽減するために行ったことがあります(完全には解決されていません)。

以下のように書かれたブロックにデータベース集中型コードを書込みます。

ActiveRecord::Base.connection_pool.with_connection do 
    write your code here... 
end 

また、動作の最後にGC.startでガベージコレクタを実行してみることもできます。

これは(zip_data_path、 'R')のファイル File.openを作成するために

関連する問題