2010-04-26 12 views

Antwort

8

ruby-prof ist der Weg zu gehen. Hier ist ein Howto, How to profile your Rails and Ruby applications with ruby-prof.

Wenn Sie es in Kombination mit einem Visualisierungstool wie kcachegrind verwenden, können Sie den Code, der Ihr Anwendungscode ist, einfach vom Framework-Code trennen.

Ich habe eine Rede über diese Tools in meiner lokalen Ruby-Benutzer Gruppe vor einer Weile: Making your rails app kick ass with ruby-prof and kcachegrind.

+0

Ich habe versucht, die Anweisungen in der hier angegebenen Link folgen, aber festgestellt, dass 'script/performance/request' wurde von Rails 2.3.2 entfernt. –

+0

Ja, diese Antwort ist Rails-2-spezifisch, wie ich es im Jahr 2010 gab. Nicht sicher, die Rails 3 Möglichkeit, dies zu tun ... –

+1

Changelog (http://rails.rubyonrails.org/files/railties/CHANGELOG.html) sagt: Entfernen Sie Skript/Performance/Request zugunsten der Performance Integration Tests. [Pratik Naik] "Um mit script/Leistung/Nachfrage weiterhin, installieren Sie das Plugin request_profiler: Skript/Plugin installieren git: //github.com/rails/request_profiler.git" –

2

Die Ruby on Rails-Konsole sollte Ihnen zeigen, welche Partialtöne zum Rendern eine Weile dauern. Wenn das nicht genug ist, könntest du das neue Relikt-Juwel (https://github.com/newrelic/rpm) installieren und das im Entwicklermodus verwenden, was dir einen Überblick über die Vorgänge gibt.

Wenn Sie unter Heroku bereitstellen, können Sie die kostenlose Version von rpm hinzufügen, die Ihnen die gleichen Statistiken über Ihre laufende Anwendung gibt.

Ruby hat einen Profiler (http://ruby-prof.rubyforge.org/), der Ihnen die Speichernutzung, die Anrufzeiten usw. anzeigt, aber es könnte schwierig sein, Ihren Code aus dem Framework-Code zu verbreiten.

+0

New Relic kann Ihnen ein wenig mehr erzählen, aber es hat keine Zeile-für-Zeile-Code-Profilierung, die für eine vollständige Leistungsanalyse erforderlich ist. –

+0

und nicht unter Windof – halfbit

0

Ich habe mit https://github.com/bhb/rack-perftools_profiler

einen gewissen Erfolg hatte Es wird Ihnen eine einzelne oder mehrere Anforderungen für alle cputime, Methoden, Objektzuordnungen oder Walltime und integrieren schön über Rack-Middleware lassen profilieren.