Почему Ruby работает намного медленнее на сервере Windows, чем на машине Windows dev?

Прежде всего, я бы переключился на Linux, если бы мог, но не могу из-за зависимости от третьих лиц.

Я заканчиваю и развертываю приложение rails на сервере Windows 2008. Во время тестирования на сервере приложение оказалось мучительно медленным, каждый запрос занимал от 2 до 5 секунд. Это далеко не так медленно на моей машине разработки, и, насколько я могу судить, медлительность находится внутри самого Rails, т.е. Я вижу такие журналы, как Completed 200 OK in 1859ms (Views: 1687.5ms) на сервере по сравнению с Completed 200 OK in 347ms (Views: 298.0ms) на моей машине разработки.

Я знаю, что Rails должен быть медленнее в Windows, чем в Linux, но почему он должен быть медленнее на сервере Windows, чем на моем компьютере с Windows 7 dev?

В разработке использую WEBrick, на сервере худею под апачем. Я также пробовал работать на своей машине разработки, и это быстрее, чем WEBrick. Кто-нибудь получил какие-либо предложения о том, что может быть причиной такого большого замедления или на что обратить внимание? Что-нибудь вообще будет высоко оценено.

Обновление: кажется, что сам Ruby значительно медленнее работает на сервере. Выполнение следующего в irb занимает 0,6 секунды на моей машине разработки, но в среднем более 3 секунд на сервере:

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

Что может быть причиной того, что Ruby работает на сервере намного медленнее (более чем в 3 раза)? Может это версия для винды? Или что-то другое? Версия Ruby точно такая же: ruby 1.9.2p290 (2011-07-09) [i386-mingw32].

Обновить еще раз:

Чувствую себя глупо, что не упомянул об этом раньше, но это VPS. Однако, хотя я готов принять это, это немного замедлит его - реально ли более чем в 3 раза медленнее?


person Russell    schedule 14.11.2011    source источник
comment
Какова нагрузка на сервер? Ruby довольно сильно загружает процессор, и если уже есть большая нагрузка, он будет довольно медленным.   -  person AboutRuby    schedule 15.11.2011
comment
Попробуйте сравнить сервер и разработку с помощью какого-нибудь стороннего программного обеспечения. т.е. Фороникс.   -  person Slotos    schedule 28.11.2011


Ответы (1)


Взгляни на:

Ускорение запуска Rails

И:

GitHub — rdp/faster_require

person Mike Jr    schedule 28.11.2011
comment
Спасибо, но эти ссылки в основном касаются времени запуска Rails. Если вы посмотрите на тестовый код в вопросе, вы увидите, что я получаю 3-кратное замедление, просто повторно назначая переменную в irb - без загрузки Rails, без requires или чего-то еще. Я прихожу к выводу, что VPS — это полная чушь. - person Russell; 29.11.2011
comment
Я не использую рельсы. Взгляните еще раз. :-) - person Mike Jr; 29.11.2011
comment
Я смотрел на них! Они предназначены для ускорения времени загрузки, особенно за счет ускорения require. В n = Time.now ; x = 0 ; 10000000.times { x += 1 } ; puts Time.now - n нет require, а irb уже загружен, поэтому я не вижу, как эти ссылки могут помочь. - person Russell; 29.11.2011
comment
Спасибо за предложение, хотя :-) - person Russell; 29.11.2011