Что я могу сделать для ускорения режима разработки направляющих?

Не точно ответ на Ваш вопрос, но если Вы могли бы переехать от своей самодельной обертки тогда, существует Простой Фасад Входа для Java (SLF4J) , которые В спящем режиме, теперь переключился на (вместо входа свободного городского населения).

SLF4J не страдает ни от одной из проблем загрузчика класса или утечек памяти, наблюдаемых с Джакартским входом палаты общин (JCL).

SLF4J поддерживает вход JDK, log4j и logback. Таким образом должно быть довольно легко переключиться от log4j до logback когда настало время.

Редактирование: Aplogies, что я не ясно выразился. Я предлагал использовать SLF4J для изоляции себя от необходимости сделать трудный выбор между log4j или logback.

10
задан Shog9 12 August 2009 в 00:47
поделиться

7 ответов

Andrews-MacBook-Pro:Sites askegg$ rails test
Andrews-MacBook-Pro:Sites askegg$ cd test
Andrews-MacBook-Pro:test askegg$ ./script/generate model test
      exists  app/models/
      exists  test/unit/
      exists  test/fixtures/
      create  app/models/test.rb
      create  test/unit/test_test.rb
      create  test/fixtures/tests.yml
      create  db/migrate
      create  db/migrate/20090812005217_create_tests.rb
Andrews-MacBook-Pro:test askegg$ ./script/performance/benchmarker 1000000 Test.new
            user     system      total        real
#1     25.140000   0.200000  25.340000 ( 25.549605)

Хммм. 25 секунд для создания 1 миллиона объектов в режиме разработки на MacBook Pro с 12 загруженными другими программами. Мне кажется, все в порядке.

-13
ответ дан 3 December 2019 в 15:52
поделиться

Вы имеете в виду:

  • Медленный запуск приложения (например, запуск скрипта / сервера)?

    Если это запуск сервера, то какой сервер вы используете? По моему опыту, webrick медленнее дворняги медленнее тонкого. Passenger действительно наиболее эффективен для локальной разработки (хотя я никогда не пытался запустить его в Windows).


  • Медленные ответы страницы при попадании на сервер разработки?

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


  • Задания с граблями запускаются бесконечно?

    У меня тоже была эта проблема. Если у вас есть большой проект с большим количеством плагинов (что означает необходимость выполнения большого количества инициализаций), может потребоваться некоторое время, чтобы нарастить среду rails. Есть вещи, которые, вероятно, ускорят его, но серебряной пули нет. Убедитесь, что у вас не установлены какие-либо плагины, которые вы больше не используете, внимательно посмотрите на свою среду и инициализаторы, чтобы убедиться, что она в хорошем состоянии и т. Д.


Суть в том, что «Rails медленно разрабатывается» на самом деле не указывает на проблему. Если вы можете уточнить, что является медленным, вы можете получить конкретную помощь, чтобы ускорить его. Я работал над множеством довольно крупных проектов, которые страдали от проблем с производительностью как при разработке, так и при производстве. У меня никогда не было ситуации, которую нельзя было бы исправить, если бы мне уделялось должное внимание. Определите проблему, и вы, как правило, сможете найти лучшее решение, чтобы ускорить процесс.

7
ответ дан 3 December 2019 в 15:52
поделиться

Полагаю, ваши запросы обрабатываются секундами? (Иначе вы бы, наверное, не заметили). Для меня это всегда было быстро. Тем более что я начал использовать sinatra вместо rails: D

О, и я забыл упомянуть - раньше я запускал rails локально, но сейчас я использую виртуальный сервер centos с VMWare. Оба были быстрыми

0
ответ дан 3 December 2019 в 15:52
поделиться

Я установил config.cache_classes = true в development.rb. Он по-прежнему медленный, и мне нужно перезапустить сервер после того, как я изменил свой код.

Вы не должны использовать этот кеш в разработке (особенно если он все еще работает медленно). Постоянный перезапуск сервера замедлит вас еще больше.

Вы уверены, что сам Ruby работает медленно? Не, например, какой-то код доступа к БД, который вы запускаете? Является ли простая демонстрация "Hello World" столь же медленной?

А насколько медленно мы говорим? Время загрузки страницы превышает 10 секунд?

0
ответ дан 3 December 2019 в 15:52
поделиться

Плагин rails-dev-boost ускоряет работу Rails в режиме разработки. У меня была та же проблема, и этот плагин сделал мое приложение очень быстрым (по сравнению с несколькими секундами загрузки одной страницы). Оно будет работать с такой же скоростью, как и в production!

http://github.com/thedarkone/rails-dev-boost

Чтобы установить его:

script/plugin install git://github.com/thedarkone/rails-dev-boost
26
ответ дан 3 December 2019 в 15:52
поделиться

Я столкнулся с теми же проблемами. Мое приложение в режиме dev становится все медленнее и медленнее. В качестве примера, я создаю новый контроллер с новым действием:

  def test
    render :text => 'nothing'
  end

В режиме dev это занимает 12-15 секунд (при запросе через FF и IE). Я использую mongrel (не кластеризованный). Я работаю на macbook pro.

В режиме prod это занимает ~130 мс.

Должен быть способ узнать, какие файлы загружаются на каждый запрос (базовое профилирование), чтобы я мог попытаться выяснить, что происходит и где узкое место.

FF Firebug Net показывает, что большая часть времени (11-14 секунд) проводится в состоянии WAIT.

Консоль показывает:

Completed in 2ms (View: 0, DB: 152)

.

Есть идеи?

2
ответ дан 3 December 2019 в 15:52
поделиться

faster_require

http://github.com/rdp/faster_require

может помочь

значительно увеличить на окнах

также спор можно использовать с jruby для ускорения юнит-тестов

http://github.com/rdp/spork

3
ответ дан 3 December 2019 в 15:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: