2011-11-14 14 views
5

まず第一に、私ができるならLinuxに切り替えるでしょうが、サードパーティの依存関係のためにできません。なぜRubyはWindowsのマシンよりもWindowsのサーバーで遅く動作するのですか?

私は、Windows 2008サーバーにレールアプリケーションを仕上げ、展開するプロセスに入っています。サーバー上でテストしている間、アプリは苦労して遅くなることが証明されており、リクエストはそれぞれ2〜5秒かかる。私の開発マシンではこれが遅いところはどこにもありません。そして、遅さはRails自体の中にあると私が判断できる限り、つまり、私はCompleted 200 OK in 1859ms (Views: 1687.5ms)のようなログを私の開発マシンのCompleted 200 OK in 347ms (Views: 298.0ms)と比較してサーバー上に表示しています。

私はRailsがLinux上よりもWindows上の方が遅くなるはずですが、なぜWindows Server上ではWindows 7の開発マシンより遅いのでしょうか?

開発中私はWEBrickを実行していますが、サーバー上ではApacheの下で動作しています。私はまた、私の開発マシン上で薄い実行しようとしているとWEBrickよりも速いです。このような大きな減速や何を見ているのか、誰に何か提案がありますか?何でも大歓迎です。

更新日:サーバー上で劇的に遅いのはRuby自体だと思われます。 IRBに次のように実行すると、私のdevのマシン上ではなく、サーバー上の平均を3秒以上の2番目の0.6をとります。

n = Time.now ; x = 0 ; 10000000.times { x += 1 } ; puts Time.now - n 

サーバー上のRubyはそんなに遅く(3倍以上)を実行させることができるもの?それはWindows版かもしれませんか?または、他の何か? Rubyのバージョンはまったく同じです:ruby 1.9.2p290 (2011-07-09) [i386-mingw32]

を再度更新:

は、この先には言及していないために愚か感じるが、それはVPSのです。しかし、私はこれを受け入れる意思はあるものの、それを少し遅くする - 現実的な3倍以上遅いですか?

+0

のようなサーバーの負荷がどのようなものですか? RubyはかなりCPUが重いです。すでに負荷が重い場合は、かなり遅くなります。 – AboutRuby

+1

いくつかのサードパーティ製ソフトウェアでベンチマークサーバーと開発を試してみてください。私。 Phoronix。 – Slotos

答えて

1

を見てみましょう:

Speeding up Rails startup time

そして:

GitHub - rdp/faster_require

+0

ありがとうございますが、これらのリンクは、主にRailsの*起動時のものです。質問のテストコードを見ると、irbで変数を代入するだけで3倍の速度低下が起こります.Railsがロードされず、 'require'sや何もロードされません。私は、VPSがまったく間違っているという結論に至りました。 – Russell

+0

私はRailsを使用しません。もう一度見てください。 :-) –

+0

私はそれらを見ました!彼らは、特に 'require'をスピードアップすることによって* load *時間を高速化しようとしています。 'n = Time.now;に' require 'はありません。 x = 0; 10000000×{x + = 1}; Time.now - n'を入れ、irbはすでにロードされているので、これらのリンクがどう役立つかはわかりません。 – Russell

関連する問題