2010-11-15 4 views
8

Come posso visualizzare il tempo di caricamento della pagina nella visualizzazione, simile a come gli spettacoli di log file "Completato 200 OK in 19ms (Viste: 16.8ms | Modelli: 0.497ms)"Display Page tempo di caricamento in Rails 3

+0

Tutto è qui, cosa vuoi di più? – shingara

+5

Penso che significhi visualizzare l'ora nella vista quando la si guarda in un browser .. non dai registri – johnmcaliley

risposta

14

Si potrebbe desiderare di utilizzare meglio secondi:

class ApplicationController < ActionController::Base 

    before_filter :set_start_time 

    def set_start_time 
    @start_time = Time.now.to_f 
    end 

end 

Visualizza codice:

Page Rendered in <%= sprintf('%.3f', (Time.now.to_f - @start_time)) %> seconds 
+1

Ciò causerà spesso valori negativi, poiché 'usec' si arrotonda a zero ogni secondo. –

10

è possibile farlo .. aggiungere un before_filter al vostro application_controller:

class ApplicationController < ActionController::Base 
    protect_from_forgery 
    before_filter :init 

    def init 
    @start_time = Time.now 
    end 
end 

nella vista (sto usando HAML):

load_time=#{[email protected]_time} seconds 

questo non sta per essere esattamente lo stesso del tempo vedi nei registri, dal momento che io Solo da before_filter al posto in cui è stato chiamato nella vista, ma dovrebbe essere vicino.

+0

e ovviamente questo è un pò brutto nella vista, mostrando solo questo per semplicità. Vorresti metterlo in un aiutante – johnmcaliley

+0

abbastanza vicino per me! Grazie!!! –

0

Basta passare attraverso il video qui sotto RailCast si arriva a conoscere tutti i dati in questione.

http://railscasts.com/episodes/368-miniprofiler?view=asciicast 
0

Si potrebbe utilizzare rack-mini-profiler che aggiunge un po 'di distintivo alla parte superiore della pagina che mostra tutti i dettagli della velocità di rendering.