2011-08-11 1 views
1

大量のオブジェクト(1〜10MB)をロードしてブラウザに送信するコードがあります。もちろん、ユーザーから受け取ってディスクに書き込むこともできます。大きなオブジェクトは膨らんだレールにつながります - どうすればそれらを排除できますか

私はそれがいくつかのメモリを占有することを理解していますが、問題はそのメモリを保持し、プロセスが不合理なギグのようなものに膨らんでいるということです。

xxxx 3449 3.0 29.9 639156 620304 ?  R 20:22 0:23 Rack: /var/www/xxxxxx.com/xxxxxxx 

これは数分しかありませんでした。おお!

サイズを小さくする方法はありますか?これはRails 3と最新の乗客です。 ActiveRecordはDBアクセスに使用されます。

リクエストごとにRailsにそのスペースを解放する方法はありますか?

+0

これらのオブジェクトが何であるか説明しておけば役に立ちます。 arnepが指摘しているように、ファイルであると想定される場合は、Apacheにxsendfileモジュールを使用して送信する必要があります。 –

+0

私は、ファイルにするために再作業ができると思いますが、そうしたくないと思います。 –

+0

巨大な文字列を持つ通常の古いARオブジェクトです。私は、彼らと彼らの記憶が各要求の後に解放されることを確実にする方法があるならば、興味があります。 –

答えて

1

どのような種類のオブジェクトですか?

ハードディスクからのファイルで、Apacheを実行している場合は、mod_xsendfile for Apache2/Apache2.2を使用して、これらのファイルに全く触れないようにすることができます。

+0

これらは、現時点ではデータベースからロードされ、データベースに保存されます。 –

関連する問題