Wie kann ich das Booten einer Rails-Anwendung profilieren?

8

Einfaches Problem, ich habe eine ältere Rails 2.3-Anwendung und es dauert ziemlich lange, etwas zu tun. rake benötigt 25 Sekunden, aber es sieht nicht so aus, als würde wirklich etwas passieren.

Gibt es einen einfachen Weg, wie ich einen Profiler-Dump von der Ladezeit der App bekomme, um zu sehen, welche Methoden am längsten brauchen?

Eine Lösung für Rails 2.3 und 3.1 wäre noch hilfreicher.

    
Jakub Arnold 23.12.2011, 09:52
quelle

2 Antworten

10

Profiliere eine Rake-Aufgabe, die die rails-Umgebung benötigt, etwa so:

%Vor%

Dann Profil mit Ruby-prof

%Vor%

Es sollte mit Schienen zu arbeiten 2.3 haben es nur auf 3.x getestet, aber ich sehe keinen Grund, warum es nicht funktionieren sollte.

    
sunkencity 23.12.2011 12:01
quelle
1

Sie können Ihre Anwendung mit einem angehängten Profiler starten, z. ruby-prof oder perftools. rb . Während es noch startet, starten Sie eine HTTP-Abfrage dagegen, die versuchen würde, GET a /kill_me route zu starten, sobald die Anwendung gestartet wird. /kill_me kann dazu führen, dass Ihre Anwendung ordnungsgemäß beendet wird, indem Sie exit aufrufen. Als Ergebnis haben Sie ein Profil von Ihrem Startup.

    
Jan 23.12.2011 09:57
quelle