Почему Rails загружается на Ruby 1.9 более 15 секунд? - PullRequest
4 голосов
/ 15 апреля 2010

На Ruby 1.8.7 свежая среда Rails 2.3.5 загружается за 4,325 секунды, но на Ruby 1.9.1p378 это занимает 15.701 с - у кого-нибудь есть идеи почему?

Это на 32-битном одноядерном ноутбуке с Ubuntu.

Ответы [ 2 ]

1 голос
/ 05 мая 2010

Я вижу ту же проблему, что и вы. На моей машине с твердотельным накопителем это 0,7 с против 1,2 с для совершенно нового проекта Rails 2.3.5 с REE против 1.9.1. На более крупных проектах рельсов разница более выражена: это что-то вроде 20 с против 10 с

Это заставляет меня подозревать, что это проблема ввода-вывода. Запуск с исправленным требованием и загрузкой:

module Kernel
  alias :load_without_tracing :load
  alias :require_without_tracing :require

  def load(filename, wrap=false)
    puts "loading #{filename}"
    load_without_tracing(filename, wrap)
  end
  def require(string)
    puts "requiring #{string}"
    require_without_tracing(string)
  end
end

говорит, что загружает лот кода. Это может быть то, что мы видим. Если 1.9.1 преуменьшить загрузку текстовых файлов (вероятным кандидатом будет кодирование в строках), это объяснит разницу во времени загрузки, которую мы видим.

Почему это будет фактор> 3 на вашей машине и <2 на моей, я могу только догадываться. Может быть, такой сценарий является хорошим кандидатом для сообщения в список рассылки по разработке MRI. </p>

0 голосов
/ 17 апреля 2010

Скорее всего, у вас есть определенные проблемы. У меня та же настройка 32-битной Ubuntu, Rails 2.3.5, и у меня нет проблем ни с ruby1.9.1p378, ни с ruby1.9.1p243.

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

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