Не точно ответ на Ваш вопрос, но если Вы могли бы переехать от своей самодельной обертки тогда, существует Простой Фасад Входа для Java (SLF4J) , которые В спящем режиме, теперь переключился на (вместо входа свободного городского населения).
SLF4J не страдает ни от одной из проблем загрузчика класса или утечек памяти, наблюдаемых с Джакартским входом палаты общин (JCL).
SLF4J поддерживает вход JDK, log4j и logback. Таким образом должно быть довольно легко переключиться от log4j до logback когда настало время.
Редактирование: Aplogies, что я не ясно выразился. Я предлагал использовать SLF4J для изоляции себя от необходимости сделать трудный выбор между log4j или logback.
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 загруженными другими программами. Мне кажется, все в порядке.
Вы имеете в виду:
Медленный запуск приложения (например, запуск скрипта / сервера)?
Если это запуск сервера, то какой сервер вы используете? По моему опыту, webrick медленнее дворняги медленнее тонкого. Passenger действительно наиболее эффективен для локальной разработки (хотя я никогда не пытался запустить его в Windows).
Медленные ответы страницы при попадании на сервер разработки?
Это могут быть неэффективные запросы к базе данных, слишком много вычислений в представлении, которое может быть переработано и т. д. Если он работает нормально в производственной среде, это, вероятно, не ваша проблема. Однако веб-сервер, который вы запускаете, также повлияет на вашу скорость локально. Я думаю, что тот же порядок запуска применяется и для выполнения.
Задания с граблями запускаются бесконечно?
У меня тоже была эта проблема. Если у вас есть большой проект с большим количеством плагинов (что означает необходимость выполнения большого количества инициализаций), может потребоваться некоторое время, чтобы нарастить среду rails. Есть вещи, которые, вероятно, ускорят его, но серебряной пули нет. Убедитесь, что у вас не установлены какие-либо плагины, которые вы больше не используете, внимательно посмотрите на свою среду и инициализаторы, чтобы убедиться, что она в хорошем состоянии и т. Д.
Суть в том, что «Rails медленно разрабатывается» на самом деле не указывает на проблему. Если вы можете уточнить, что является медленным, вы можете получить конкретную помощь, чтобы ускорить его. Я работал над множеством довольно крупных проектов, которые страдали от проблем с производительностью как при разработке, так и при производстве. У меня никогда не было ситуации, которую нельзя было бы исправить, если бы мне уделялось должное внимание. Определите проблему, и вы, как правило, сможете найти лучшее решение, чтобы ускорить процесс.
Полагаю, ваши запросы обрабатываются секундами? (Иначе вы бы, наверное, не заметили). Для меня это всегда было быстро. Тем более что я начал использовать sinatra вместо rails: D
О, и я забыл упомянуть - раньше я запускал rails локально, но сейчас я использую виртуальный сервер centos с VMWare. Оба были быстрыми
Я установил config.cache_classes = true в development.rb. Он по-прежнему медленный, и мне нужно перезапустить сервер после того, как я изменил свой код.
Вы не должны использовать этот кеш в разработке (особенно если он все еще работает медленно). Постоянный перезапуск сервера замедлит вас еще больше.
Вы уверены, что сам Ruby работает медленно? Не, например, какой-то код доступа к БД, который вы запускаете? Является ли простая демонстрация "Hello World" столь же медленной?
А насколько медленно мы говорим? Время загрузки страницы превышает 10 секунд?
Плагин rails-dev-boost ускоряет работу Rails в режиме разработки. У меня была та же проблема, и этот плагин сделал мое приложение очень быстрым (по сравнению с несколькими секундами загрузки одной страницы). Оно будет работать с такой же скоростью, как и в production!
http://github.com/thedarkone/rails-dev-boost
Чтобы установить его:
script/plugin install git://github.com/thedarkone/rails-dev-boost
Я столкнулся с теми же проблемами. Мое приложение в режиме 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)
.
Есть идеи?
faster_require
http://github.com/rdp/faster_require
может помочь
значительно увеличить на окнах
также спор можно использовать с jruby для ускорения юнит-тестов