Rails в Windows работает очень медленно (rails -v занимает 4 секунды) - PullRequest
25 голосов
/ 07 января 2011

Я использую рельсы версии 3.0.3 и ruby ​​версии 1.9.2p136 (2010-12-15) на Intel Core 2 Duo 2,6 ГГц с 4 ГБ оперативной памяти и Windows Vista Business SP2 без других (тяжелых) приложения работают. Я уже читал, что разработка рельсов в Windows медленнее, чем в Unices, и большинство людей делают это, потому что не рекомендуют этого, но это глупо.

Я не могу придумать какой-либо веской причины использовать 4 секунды для отображения простого номера версии. И рельсы для генерации требуют до 10 секунд!

Что-то в моих настройках должно быть не так (по крайней мере, я надеюсь).

У кого-нибудь есть хорошая идея, как поступить? Заранее спасибо!

Ответы [ 5 ]

20 голосов
/ 08 января 2011

Есть несколько ключевых моментов, которые в совокупности генерируют низкую производительность, которую вы заметили.

  • Производительность Ruby IO (в любой версии) в 3 раза ниже, чем у аналогов Linux.Это потому, что несколько неоптимизированных прыжков в кодовой базе Windows для Ruby.Это требует дальнейшего анализа, исследования и оптимизации, которые не проводились до сегодняшнего дня.
  • Ruby 1.9.2 производит несколько stat() вызовов на файл, что может увеличить замедление самого Ruby.Этого нет в Ruby 1.8.6 или 1.8.7.Это также решено в Ruby 1.9.3 (транк), который еще не выпущен.
  • Проектам, подобным Rails, требуется около 500 файлов, что в сочетании с указанными выше пунктами делает Ruby для Windows очень популярным.

Теперь есть обходной путь, некоторые простые и сложные.

  1. Вернитесь к Ruby 1.8.7 вместо Ruby 1.9.2.Это снова принесет определенный уровень скорости для вашего приложения.Если вы не пользуетесь поддержкой Unicode, тогда 1.8.7 может работать на вас.
  2. Изучите такие инструменты, как Spork, чтобы предоставить сценарий / разветвление для вашего RSpec / Cucumber
  3. Переместите разработку вRAM, используя RAMDisk, такой как ImDisk .Переместите на него и Ruby, и ваше приложение, и время загрузки будет сокращено (это также связано с доступной оперативной памятью)

Надеюсь, что некоторые из этих опций помогут вам.

7 голосов
/ 17 августа 2014

Использовать Ruby внутри виртуальной машины Ubuntu быстрее, чем использовать его непосредственно в Windows.

Хорошим вариантом является использование Vagrant: вы разрабатываете в своей среде IDE Windows, и файлы «делятся» сВ Ubuntu VM вы запускаете vagrant ssh, затем запускаете rails server или любую другую команду, которую хотите запустить.Есть и другие преимущества:

  • Вам не нужно устанавливать RVM или переключать версии ruby, просто используйте виртуальную машину для каждого проекта.Виртуальные машины могут быть небольшими, например, 500 МБ данных, используя до 100 МБ ОЗУ, но YMMV
  • Вам не нужно беспокоиться о совместимости гемов с Windows

. Обратите внимание:http://www.vagrantup.com/

0 голосов
/ 12 октября 2012

вы можете попробовать поиграть с сборщиком мусора ruby, чтобы ускорить работу ruby, поскольку настройки переменных по умолчанию не соответствуют принципам работы окон

Настройка производительности сборщика мусора

0 голосов
/ 10 марта 2011

Для ускорения вы можете попробовать мой верхний загрузчик (помогает рельсам работать быстрее в Windows): https://github.com/rdp/faster_require

Также проверьте spork, который работает в Windows, и jruby также работает хорошо.

0 голосов
/ 07 января 2011

Скорее всего, это антивирус, влияющий на него. Это в сочетании со скоростью Vista, вероятно, влияет на это. Я согласен с Правосудием, запускаю Linux на ВМ.

...