Rails гемы / инструменты для тестирования производительности? - PullRequest
5 голосов
/ 27 января 2011

Я ищу инструменты для мониторинга / тестирования производительности в рельсах, и мне не особо повезло найти что-то особенно эффективное.Я прочитал руководство по производительности rails, но я использую RSpec вместо Rake: Test, поэтому я не особо заинтересован в использовании rake: test framework.

Итак, что люди используют для производительноститестирование в рельсах кроме граблей: тестовый тест?Любые предложения приветствуются

Ответы [ 2 ]

10 голосов
/ 27 января 2011

Сравнительный анализ производительности - это одна из тех вещей, о которой вы получите различные мнения в зависимости от того, кого вы спрашиваете.Одна вещь, которую я слышу снова и снова, это то, что вы не должны зацикливаться на производительности на ранней стадии.Я не уверен, где вы находитесь с вашим приложением, но это может быть что-то, чтобы рассмотреть.После разработки довольно большого приложения я могу честно сказать, что согласен с ними.При разработке лучше использовать передовой опыт и подождать, чтобы выполнить настройку производительности позже.Лучшие практики включают в себя такие вещи, как индексация столбцов базы данных.

Для мониторинга производительности живых приложений Rails New Relic является одним из лучших инструментов *.Бесплатный план немного ограничен, так как он предоставляет только 30 минут исторических данных, но информация, которую он собирает, бесценна.Некоторые облачные хосты, такие как Heroku и Engine Yard, предлагают бесплатные обновления бронзового плана, которые хранят данные за неделю.Когда у вас есть информация о вашем заявлении, вы можете принимать обоснованные решения о том, на чем вам следует сосредоточиться.

* Мое мнение

1 голос
/ 13 мая 2013

Когда вашему приложению требуется тестирование производительности, стандартные тесты производительности на основе TestUnit являются отличным началом. Тем не менее, вы не должны останавливаться на достигнутом и должны рассмотреть возможность использования различных инструментов в зависимости от характера вашего приложения.

Например, анализ производственных журналов с помощью такого инструмента, как request-log-analyzer , является отличным способом выявления узких мест реальной производительности. Bullet - это еще один замечательный инструмент, который вы можете использовать в своей среде разработки для определения неэффективности вызовов вашей базы данных. Для сравнительного анализа на низком уровне рельсы также предоставляют вспомогательные методы тестирования в моделях, контроллерах и видах. Это может быть удобно, если вы сосредоточены на настройке какой-то конкретной части вашего приложения.

Стоит также отметить, что rspec - не лучший инструмент для сравнения производительности (на сегодняшний день). По моему мнению, попытка заявить о вещах типа it should_take_less_than 50 расширяет идею тестирования производительности и пытается втиснуть ее в концепцию BDD. Производительность реже зависит от абсолютных ожиданий, а больше - от определения самых медленных частей вашего приложения и их ускорения.

Есть много интернет-ресурсов по этой теме. Я считаю, что эти рейлскасты являются отличной отправной точкой:

...