Рельсы тестируют цепочку фильтров? - PullRequest
1 голос
/ 27 января 2011

Я выполняю некоторую оптимизацию в своем приложении Rails (2.3.5) и, похоже, не могу найти элегантный способ сравнительного анализа цепочки фильтров. Я ab тестирую сайт с чем-то вроде:

ab -n 200 -c 3 -i -k http://localtestingserver:80/test

/ test - это настройка, в которой ничего нет в контроллере и ничего на странице, поэтому он просто загружает нашу цепочку фильтров по умолчанию и отображает макет. Я получаю в среднем 86 мс за запрос, хорошо.

Когда я отключаю фильтры (skip_filter filter_chain), он падает до 37 мс, а без макета (render: layout => false) он падает до 16 мс. Есть ли способ, которым я могу сравнить, возможно, с Benchmark.realtime, каждую функцию, загружаемую в цепочку фильтров, до вызова контроллера (или даже после)? Можно ли вывести хотя бы список всех фильтров, вызываемых по запросу?

Спасибо

Dan

Редактировать

Я использую регистратор Hodel3000 и Oink, поэтому получаю вывод для каждого запроса, например:

Jan 27 17:56:55 testing rails[19611]: Memory usage: 98748 | PID: 19611
Jan 27 17:56:55 testing rails[19611]: Instantiation Breakdown: Total: 2 | Room: 1 | User: 1
Jan 27 17:56:55 testing rails[19611]: Completed in 240ms (View: 28, DB: 0) | 200 OK [/test]

Я просто хотел бы лучше понять и профилировать то, что происходит до вызова контроллера, - я могу хорошо профилировать контроллеры. Например, откуда дополнительные 212 мсек в вышеуказанном запросе. Очевидно, я мог добавить код в каждый из своих собственных before_filters, но надеялся, что есть способ обернуть каждый фильтр за один раз (например, из включенных гемов и т. Д.).

1 Ответ

0 голосов
/ 28 января 2011

Руководство по применению Rails для тестирования производительности - хорошее место для начала.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...