Как уменьшить отношение времени пользователя к времени sys для команд Rails 3 в Linux - PullRequest
0 голосов
/ 16 марта 2011

В настоящее время я использую Rails 3 в Ubuntu Linux и получаю то, что кажется очень большим временем отклика для простых команд. Например, если я вызываю db: rollback для удаления крошечной таблицы из 4 столбцов, а 0 строк занимает ~ 30 секунд.

paul@paul-laptop:~/rails_projects/foglift$ time rake db:rollback
(in /home/paul/rails_projects/foglift)
==  CreateResults: reverting ==================================================
-- drop_table(:results)
   -> 0.0013s
==  CreateResults: reverted (0.0014s) =========================================


real    0m27.946s
user    0m26.570s
sys     0m1.284s

Меня беспокоит высокое соотношение времени пользователя и времени системы. Есть ли для диагностики или устранения неполадок это?

Любая помощь будет наиболее ценной.

Спасибо! Пол

1 Ответ

1 голос
/ 16 марта 2011

Вы действительно не сможете изменить это очень сильно. Это результат использования интерпретируемого языка и мощного / гибкого фреймворка для веб-разработки.

Когда вы запускаете команду, интерпретатор ruby ​​должен быть загружен вместе со средой rails и вашим приложением, прежде чем он сможет выполнить откат. Это похоже на запуск сервера Rails и затем откат.

Это может быть болезненно при сборке, но есть и преимущества. Ваши миграции могут содержать логику, использующую классы из вашего приложения, чтобы принимать правильные решения о том, как выполнить миграции. Долгосрочная ремонтопригодность здесь намного лучше.

Кроме того, модели БД обычно не меняются часто, мощность важнее суперскорости.

...