Usageという記事が公開されました。Railsの最適化について10の事柄を挙げています。興味がある人は原文を読んでもらうとして、ここでは軽くサマリー(意訳)を。最小限のFastCGI開発には1つのDispatcherで十分。Dispatcherで動かしてて速くてloadも0.01だよ。あとFCGIが増えるとDBコネクションも増えるからね。キャッシュを使うDispatcherを通さずキャッシュを使う。Railsではとっても簡単にキャッシュ使えるし、期限設定も楽だし。リライトされ、静的htmlがあるとそちらが呼ばれるため、Dispatcherを通さなくてすむ。FastCGI)が現実的になる、かも。1,2時間以上development環境のFastCGIで動かしてはならないdevelopmentだとclassがリロードされ、メモリリークが生じるからだ。Mbのメモリが消費される。メモリリークしてる場合もあるよ。Dispatcherファイルを変更するデフォルトじゃGCが走らないからdispatch.fcgiを変更しよう。50とRailsHCGIHandler.proccess!の第二引数に数値を指定することで、その回数Dispatcherが呼ばれたら明示的なGCが走る。development環境は5-10でいいんじゃないかな。一切実行しなくなるので良くないだろうと訂正されてます。ありがとうございます。以下のログローテートしようよ。clean_logs使うと便利。ユニットテストを書いて走らせる時間浪費しなくてすむよ。:requireって書くとdevelopmentでもメモリリークのチェックができる。Dispatcherが90MB超えるのは決してないし、通常20-70MBに収まる。ない場合はlighttpdの再起動時のdispatch.fcgiがkillできなかったか、メモリリークが起きてるかだ。(デフォルトはdevelopment.rbではfalse)にすべき。繰り返しに注意ActiveRecordはスマートだけどこんな風に使っちゃダメだよ。AR#findで全部取得してからイテレータ内部で条件指定するんじゃなくて、joinやconditionsつけて条件つけて取得すべきと。Webプログラマならかけ出しのころ単純なSQL条件句ですむ場合にも全部のresult取得して各種言語で取捨選択した経験があるはず。ソフトウェアエンジニア。ニックネームを利用している。おたよりを送るおたよりをおまちしてます。お気軽に送りください。お返事はメールアドレス入力があればメールで、メールアドレスがなければ日記上で行うことがあります。プライバシーポリシーおよび利用規約が適用され、保護されています。