Rails отображает странную медлительность
Эта проблема
Внезапно мое приложение rails начало занимать около 60 секунд, обслуживая первоначальный запрос и последовательные запросы, если что-то изменилось в активах.
Что я попробовал
На SO есть много ответов относительно "rails, render, slow", но ни один из них не помог, потому что проблема, кажется, в другой области.
Затем я попытался откатить версии джема до более старой точки, где этой проблемы не было. Неудачно. Я ничего не обновлял в системе (rvm, homebrew), поэтому откатывать было нечего.
Затем я установил ruby-prof
профилировщик и увидел, что рельсы потратили все время на выполнение V8::C::String#Utf8Value
, но я ничего не могу получить от этого.
Диагностическая информация
Я использую OSX Mavericks.
журнал сервера:
Запуск GET "/" для 127.0.0.1 в 2014-04-08 05:30:49 +0200 Обработка HomeController#index как пользовательская нагрузка HTML (0,3 мс) ВЫБЕРИТЕ "users".* FROM "users" WHERE "users"."id" = 1 ORDER BY "users"."id" ASC LIMIT 1 Отображается home/index.html.erb в макетах / приложении (64211.8ms) Завершено 200 OK за 64248ms (просмотров: 64218.0ms | ActiveRecord: 2.1ms)
Журнал профилировщика (прокрутка по горизонтали):
%total %self total self wait child calls Name
--------------------------------------------------------------------------------
61.042 0.000 0.000 61.042 2/2 V8::Conversion::Fundamental#to_ruby
87.50% 0.00% 61.042 0.000 0.000 61.042 2 V8::Conversion::NativeString#to_ruby
61.042 61.042 0.000 0.000 2/2 V8::C::String#Utf8Value
--------------------------------------------------------------------------------
61.042 61.042 0.000 0.000 2/2 V8::Conversion::NativeString#to_ruby
87.50% 87.50% 61.042 61.042 0.000 0.000 2 V8::C::String#Utf8Value
--------------------------------------------------------------------------------
8.528 0.000 0.000 8.528 4/4 Proc#call
12.22% 0.00% 8.528 0.000 0.000 8.528 4 V8::Error::Try#try
8.528 0.000 0.000 8.528 4/4 <Module::V8::C>#TryCatch
--------------------------------------------------------------------------------