2011-01-27 2 views
5

레일에서 성능을 모니터링/테스트 할 수있는 도구를 찾고 있는데, 특히 효과가있는 항목이별로 없습니다. 필자는 레일스의 성능 가이드를 읽었지만, Rake : Test 대신 RSpec을 사용합니다. 그래서 테스트 프레임 워크 인 레이크 (rake)를별로 좋아하지 않습니다.성능 벤치마킹을위한 레일스 젬/도구?

그렇다면 레이크 이외의 레일에서 성능 테스트를 수행 할 때 테스트 벤치마커는 무엇을 사용합니까? 제안 사항이 인정되었습니다

답변

10

성능 벤치마킹은 사용자가 묻는 질문에 따라 다른 의견을 얻을 수있는 것들 중 하나입니다. 내가 계속해서 듣는 한 가지 사실은 일찍 성과에 집착해서는 안된다는 것입니다. 나는 당신이 당신의 신청서를 가지고있는 곳을 잘 모르겠다. 그러나 이것은 고려해야 할 부분 일 수있다. 상당히 큰 응용 프로그램을 개발 한 후에 나는 솔직히 내가 그들과 동의한다고 말할 수 있습니다. 나중에 성능 조정을 수행하고 대기 할 때 우수 사례를 사용하는 것이 좋습니다. 가장 좋은 방법은 데이터베이스 열의 색인 생성과 같은 것들입니다.

라이브 레일스 애플리케이션의 성능 모니터링을 위해 New Relic이 최상의 도구 중 하나입니다 *. 무료 계획은 30 분의 역사적인 데이터 만 제공하기 때문에 조금 제한되어 있지만 수집하는 정보는 매우 귀중합니다. 헤로 쿠 (Heroku)와 엔진 야드 (Engine Yard)와 같은 클라우드 호스트 중 일부는 1 주일간의 데이터를 저장하는 무료 브론즈 계획 업그레이드를 제공하고 있습니다. 응용 프로그램에 대한 정보를 얻은 후에는 어디에 초점을 맞출 지에 대해 현명한 결정을 내릴 수 있습니다.

*이 내 의견

+0

* * 고체 조언을 고개를 끄덕, 환호 : 나는 좋은 출발점이 될 이러한 railscasts을 발견했습니다. – PlankTon

1

당신의 응용 프로그램을 일부 성능 테스트, 기본 TestUnit 기반 성능 벤치 마크 테스트는 좋은 시작입니다 필요합니다. 그러나 여기서 멈추지 않아야하며 응용 프로그램의 성격에 따라 다양한 도구를 사용해야합니다.

예를 들어 request-log-analyzer과 같은 도구를 사용하여 생산 로그를 분석하면 실제 성능 병목 현상을 식별 할 수 있습니다. Bullet은 개발 환경에서 데이터베이스 호출의 성능 비 효율성을 식별 할 수있는 또 하나의 훌륭한 도구입니다. 낮은 수준의 벤치마킹을 위해 레일은 모델, 컨트롤러 및 뷰에서 benchmark helper methods을 제공합니다. 응용 프로그램의 특정 부분을 조정하는 데 집중한다면이 방법이 유용 할 수 있습니다.

rspec이 (지금까지의) 벤치마킹 성능을위한 최상의 도구는 아닙니다. 필자의 의견으로는 it should_take_less_than 50과 같은 것들을 주장하려고 시도하는 것은 성능 테스트의 아이디어를 끌어내어 그것을 BDD의 개념으로 강제하려고 시도하고있다. 성능은 앱의 가장 느린 부분을 찾아 내고 더 빨리 만드는 것과 관련하여 절대적인 기대치에 대해서는 덜 자주 나타납니다.

주제에 대한 온라인 리소스가 많이 있습니다.