红宝石轨道 – 慢轨堆叠

当我跑

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

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

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...