Прежде всего, я бы переключился на 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 раза медленнее?