Calcolare l'elapsed time


#1

sto provando a calcolare il tempo di elaborazione di ogni chiamata alla
mia applicazione.

mi sono creato il controller timing_filter.rb
come segue sfruttando i filtri around:


Class TimingFilter

def before(controller)
@started = Time.now
end

def after(controller)
@elapsed_time = Time.now - @started
puts @elapsed_time
end

end

e sull’application.rb ho aggiunto:

around_filter TimingFilter.new

ed ho inserite nel layout di default <%= @elapsed_time %>

ad ogni chiamata di un qualsiasi controller, nella console mi appare il
numero di secondi di elaborazione, ma nella vista no.

dov’e’ l’inghippo???

Giuseppe


#2

Giuseppe Fava wrote:

dov’e’ l’inghippo???

il metodo “after” e’ chiamato dopo la chiamata dell’azione, quando il
render della pagina e’ gia stato fatto

ciao,
Luca

Web: http://spazidigitali.com - http://thetyper.com
Email mailto://removed_email_address@domain.invalid
Skype callto://l.mearelli


#3

Il giorno gio, 02/08/2007 alle 09.47 +0200, Luca M. ha scritto:

Giuseppe Fava wrote:

dov’e’ l’inghippo???

il metodo “after” e’ chiamato dopo la chiamata dell’azione, quando il
render della pagina e’ gia stato fatto

ciao,
Luca

quindi dovrei inserire il codice di “stoptimer” nella vista?

Non mi pare una bella cosa.

Esiste qualche altra soluzione piu’ pragmatic, chesso’ qualche filtro
“after render”??

G.


#4

Esiste qualche altra soluzione piu’ pragmatic, chesso’ qualche filtro
“after render”??

volevo dire “before render”


#5

Il giorno gio, 02/08/2007 alle 10.01 +0200, Giuseppe Fava ha scritto:

Esiste qualche altra soluzione piu’ pragmatic, chesso’ qualche filtro
“after render”??

volevo dire “before render”

Credo di aver trovato una possibile soluzione qui:

http://www.aldenta.com/2006/09/25/execute-rails-code-before-the-view-is-rendered/

in pratica si fa un override del metodo render per inserire il codice
desiderato prima del metodo render.

G.