que me está molestando también, ya que he cambiado a Rails 3.
Para su segunda pregunta: He encontrado al profundizar en el marco de trabajo, los inicializadores tardan la mitad del tiempo de una simple llamada de rake o rails antes de que realmente comience a realizar su tarea.
Si pones estas líneas simples de temporización en el circuito de llamadas de inicializador en $GEM_PATH/gems/railties-3.0.3/lib/rails/initializable.rb
(o de lengüeta de que si se quiere):
def run_initializers(*args)
return if instance_variable_defined?(:@ran)
t0 = Time.now
initializers.tsort.each do |initializer|
t = Time.now
initializer.run(*args)
puts("%60s: %.3f sec" % [initializer.name, Time.now - t])
end
puts "%60s: %.3f sec" % ["for all", Time.now - t0]
@ran = true
end
EDIT: O, para railties 4.2.1:
def run_initializers(group=:default, *args)
return if instance_variable_defined?(:@ran)
t0 = Time.now
initializers.tsort.each do |initializer|
t = Time.now
initializer.run(*args) if initializer.belongs_to?(group)
puts("%60s: %.3f sec" % [initializer.name, Time.now - t])
end
puts "%60s: %.3f sec" % ["for all", Time.now - t0]
@ran = true
end
... puede seguir lo que sucede. En mi sistema, que es una MacBook de 2.4 Core 2 Duo, los inicializadores tardan unos 7 segundos.
Hay algunas que son especialmente lentas en mi sistema. Cuando puedo filtrar todo lo alto debajo de un segundo, me sale este resultado en mi sistema:
load_active_support: 1.123 sec
active_support.initialize_time_zone: 1.579 sec
load_init_rb: 1.118 sec
set_routes_reloader: 1.291 sec
Estoy seguro de que alguien (¿soy yo?) Va a tomar algún tiempo para empezar por ahí y optimizar.
¿En qué plataforma estás? Linux? ¿Mac? Además, defina "mucho tiempo" ... ¿20 segundos? ¿2 minutos? –
Sí, estoy empezando el tutorial de Rails con una instalación limpia de Rails 3.1.1 en Windows 7 y 'rake -T' tarda 11 segundos en ejecutarse. –