2011-01-27 39 views
5

我正在尋找工具來監視/測試軌道中的性能,而且我沒有找到任何特別有效的運氣。我已經閱讀了rails的性能指南,但是我使用RSpec而不是Rake:Test,所以我並不特別熱衷於使用rake:test框架。性能基準測試的Rails寶石/工具?

那麼,除了rake:測試基準測試程序之外,人們在rails中如何使用性能測試呢?任何建議讚賞

回答

10

性能基準測試是這些事情之一,你會得到不同的意見取決於你問誰。我一遍又一遍地聽到的一件事是,你不應該在早期對性能產生影響。我不確定你的應用程序在哪裏,但這可能是需要考慮的事情。在開發了一個相當大的應用程序後,我可以誠實地說我同意他們。在開發時使用良好的實踐並稍後再進行性能調整會更好。最佳實踐包括索引數據庫列等內容。

對於活軌應用的性能監測,New Relic是最好的工具之一*。免費計劃有點有限,因爲它只提供30分鐘的歷史數據,但它收集的信息是無價的。 Heroku和Engine Yard等雲主機提供免費的青銅計劃升級,存儲一週的數據。一旦你掌握了關於你的應用的信息,你就可以做出明智的決定,把握你的時間。

*我的意見

+0

*點頭*可靠的建議,歡呼聲。 – PlankTon 2011-01-27 14:18:52

1

您的應用程序需要一定的性能測試中,默認TestUnit基於性能基準測試是一個很好的開始。但是,您不應該停留在此處,並應根據應用程序的性質考慮使用各種工具。

例如,使用像request-log-analyzer這樣的工具分析生產日誌是識別真實性能瓶頸的好方法。 Bullet是您可以在開發環境中運行以識別數據庫調用中的性能低效的另一個優秀工具。對於低級基準測試,rails還爲您提供模型,控制器和視圖中的benchmark helper methods。如果您專注於調整應用程序的某個特定部分,這可能非常方便。

還值得注意的是,rspec不是基準性能(迄今爲止)的最佳工具。在我看來,試圖斷言諸如it should_take_less_than 50這樣的東西正在擴展性能測試的想法,並試圖將其強制爲BDD的概念。性能不是絕對的期望,更多的是關於識別應用程序中最慢的部分並使其更快。

該主題有很多在線資源。我發現這些railscasts是一個很好的起點: