红宝石轨道 – 慢轨堆叠

前端之家收集整理的这篇文章主要介绍了红宝石轨道 – 慢轨堆叠前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
当我跑

rails server

要么

rake -T

或一些其他的轨道脚本,需要很多时间,大约1分钟.
确定究竟是那么慢的最好方法是什么?
如何提高速度?

Rails v是3.0.3运行槽ruby 1.9.2(RVM) – Linux

解决方法

这也是困扰我,因为我已经切换到Rails 3.

对于你的第二个问题:我通过挖掘框架发现,在实际开始执行其任务之前,初始化程序需要大约一半的时间进行简单的耙子或轨道调用.

如果将这些简单的时序线放在$GEM_PATH / gems / railties-3.0.3 / lib / rails / initializable.rb中的初始化程序调用循环(或者如果你喜欢的话)

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

编辑:或对于铁路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 - t0]
  @ran = true
end

…你可以跟进会发生什么.在我的系统上,这是一个2.4 Core 2 Duo MacBook,初始化器大约需要7秒钟.

有一些在我的系统上特别慢.当我全部过滤一秒钟以下时,我的系统上得到这个结果:

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

我确定有人(是我吗?)需要一些时间才能开始优化.

猜你在找的Ruby相关文章