Rails тестирует цепочку фильтров?

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

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

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

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

Спасибо,

Дэн

Изменить

Я использую регистратор 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, но надеялся, что есть способ обернуть каждый фильтр за один раз (например, фильтры из включенных драгоценных камней и т. д.).


person Dan Hill    schedule 27.01.2011    source источник


Ответы (1)


Руководство по Тестирование производительности приложений Rails выглядит как хорошее место для начала.

person zetetic    schedule 27.01.2011
comment
Спасибо, я много чего там делаю. Дело не столько в профилировании различных контроллеров/запросов, сколько в том, что происходит перед каждым запросом. Уточню вопрос выше. - person Dan Hill; 28.01.2011
comment
Неработающей ссылке. Версия 3.2.14 находится здесь: guides.rubyonrails.org/v3.2.14/performance_testing. html - person kristinalim; 03.10.2013