Если вы публикуете содержимое журнала по мере обработки первого запроса, возможно, мы сможем выяснить, что делает его настолько медленным. Например, это мой журнал, как первый пользователь обращается к сайту
Booting Mongrel (use 'script/server webrick' to force WEBrick)
Rails 2.1.0 application starting on http://0.0.0.0:3000
Debugger enabled
Call with -d to detach
Ctrl-C to shutdown server
** Starting Mongrel listening at 0.0.0.0:3000
** Starting Rails with development environment...
/usr/lib/ruby/gems/1.8/gems/actionpack-2.1.0/lib/action_controller/mime_type.rb:66: warning: already initialized constant CSV
** Rails loaded.
** Loading any Rails specific GemPlugins
** Signals ready. TERM => stop. USR2 => restart. INT => stop (no restart).
** Rails signals registered. HUP => reload (without restart). It might not work well.
** Mongrel 1.1.5 available at 0.0.0.0:3000
** Use CTRL-C to stop.
Processing SessionsController#new (for 127.0.0.1 at 2009-05-26 12:26:00) [GET]
Session ID: de2acf074759026e1ed6205724f547a9
Parameters: {"action"=>"new", "controller"=>"sessions"}
Rendering sessions/new
Completed in 0.00587 (170 reqs/sec) | Rendering: 0.00298 (50%) | DB: 0.00092 (15%) | 200 OK [http://localhost/]
Я думаю, что 170 Reqs/сек отлично подходит для нашего приложения, но другие могут обнаружить, что медленно. Из статистики вы можете видеть, что рельсы обеспечивают половину времени, затраченного на рендеринг, - в этом случае генерируют HTML для экрана входа. Если этот запрос занял много времени, моим первым портом захода были бы виды и помощники, связанные с экраном входа.
Если у вас есть система, которая требует много времени, чтобы инициализировать себя по первому запросу, то почему бы не быть подлым и написать свою собственную программу запуска, которая сначала запускает рельсы, а затем отправляет поддельный запрос через curl. Таким образом, ваши пользователи никогда не видят проблемы.
Chris
Спасибо за ваш намек. Вот мой файл журнала: http://pastie.org/private/ih2mpcmjpofp5jmfsvw Иногда для ответа на мой запрос он длится намного дольше 1600 мс. У меня действительно нет подсказки ... – Stefan
Какую версию рельсов вы используете? Завершено в 10367ms (Вид: 1572, DB: 450) | 200 OK [http: // localhost/search? Search = stefan +] Похоже, что на первый запрос отвечает 10 секунд. Я предполагаю, что поиск снова для одного и того же запроса «stefan» происходит намного быстрее? Сколько времени требуется, чтобы найти другую запись? Наконец, сколько времени требуется для поиска несуществующей записи? –