Я пишу веб-приложение для мониторинга потока производства фабрики мебели. Он обрабатывает тысячи данных. До сих пор я запускал RoR на Mongrel + MySQL, и это действительно очень медленно (2-4min для некоторых просмотров). Когда я смотрю на журналы RoR, кажется, что запросы к базе данных не медленны (0-10 мс).Ruby On Rails медленный ...?
Является ли RoR медленным, когда он преобразует данные базы данных в объект? Мегрел?
Редактировать: Первое: я был в dev. окр. В производственной среде самый медленный вид занимает 2мин (который будет работать менее чем на 1 мин на хорошем компьютере, мне 5 лет). С ruby-prof и немного здравым смыслом я выяснил, какие методы замедляют работу приложения. Проблема заключается в том, что отдельные запросы SQL называются петлями на Крупнейшими наборов данных:
ofs = Ofkb.find_by_sql ["..some large sql query..."]
for of in ofs # About 700-1000 elements
ops = Operation.find(..the single query..)
etc.
end
Здесь представлены результаты рубин-Prof на этих методах:
%self total self wait child calls name
32.19 97.91 97.91 0.00 0.00 55 IO#gets (ruby_runtime:0}
28.31 86.39 86.08 0.00 0.32 32128 Mysql#query (ruby_runtime:0}
6.14 18.66 18.66 0.00 0.00 12432 IO#write (ruby_runtime:0}
0.80 2.53 2.42 0.00 0.11 32122 Mysql::Result#each_hash (ruby_runtime:0}
Проблема: Я не могу избежать тех одного запросы. У меня есть тысячи событий, из которых мне приходится вычислять сложные данные. Прямо сейчас я использую memcached для тех методов, которые в порядке, если только ваш первый не запросит страницу.
Ни то, ни другое, вероятно, написанный вами код, который является медленным, или тот факт, что вы работаете на этапе разработки. Если вы могли бы разместить соответствующее содержание мнений, мы могли бы дать правильный ответ. – TomHastjarjanto
Согласитесь с @Tomh - это не типично вообще, даже с большими наборами данных. Нам нужна дополнительная информация, чтобы сделать какой-либо диагноз. –
Это может показаться глупым, но убедитесь, что вы работаете в режиме производства.Режим Dev будет перезагружать все классы по каждому запросу. –