Подтвердить что ты не робот

Rails в Windows настолько медленный (rails -v занимает 4 секунды)

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

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

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

Есть ли у кого-то хорошая идея, как действовать? Спасибо заранее!

4b9b3361

Ответ 1

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

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

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

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

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

Ответ 2

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

Хорошим вариантом является использование Vagrant: вы разрабатываете в своей среде Windows IDE, а файлы "совместно" с VM Ubuntu, вы запускаете "бродячий ssh", затем запускаете "сервер rails" или любую другую команду, которую вы как бежать. Существуют и другие преимущества:

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

Посмотрите: http://www.vagrantup.com/

Ответ 3

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

Ответ 4

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

Также проверка справки, которая работает в Windows, и jruby также хорошо работает.

Ответ 5

вы можете попробовать сыграть с рубиновым сборщиком мусора, чтобы сделать рубин быстрее, поскольку параметры переменной по умолчанию не совпадают с тем, как работают окна см. здесь, возможно, это поможет немного

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