2014-02-13 28 views
0

如何打印每个文件需要多长时间?启动Rails 2项目时每个文件的打印加载时间

我正在考虑猴子补丁load或Rails中的一些加载方法,但我对Rails 2内部的东西了解不多。

我希望这样的输出:

config/environment.rb ---> 60 s 
config/development.rb ---> 30 s 
config/initializers/some.rb ---> 20 s 

任何出发点是真正的赞赏。

更新

我测量时间:

from = Time.now; p from.to_s + '----- env.rb' 
to = Time.now - from; p "env.rb ---" + to.to_s 

中的boot.rb文件更改env.rbboot.rb,这些都是我的结果:

"Thu Feb 13 18:54:17 +0000 2014----- boot.rb" 
"boot.rb ---0.001493" 
"boot.rb ---0.941835" 
Loading development environment (Rails 2.3.18) 
"Thu Feb 13 18:54:19 +0000 2014----- env.rb" 
"env.rb ---0.001378" 
"Thu Feb 13 18:54:19 +0000 2014----- boot.rb" 
"boot.rb ---0.001712" 
"boot.rb ---0.02536" 
"env.rb ---67.272745" 
"env.rb ---70.847089" 

我不知道为什么我我正在调用config/boot两次。从我看到的大部分时间都用在environment.rb中,但我删除了代码和时间保持不变,所以它应该与其他事情有关。

这等事不是捆绑的宝石,因为我有:

from = Time.now; p from.to_s + '----- env.rb' 
# Be sure to restart your web server when you modify this file. 
# 
# 
require 'rubygems' 
require "bundler" 
Bundler.setup 


to = Time.now - from; p "env.rb ---" + to.to_s 

这是印刷:

"env.rb ---0.001378" 
+0

使用ruby分析器像http://ruby-prof.rubyforge.org/ – phoet

+0

谢谢,这些是我的结果https://gist.github.com/juanpastas/78772b34d299fd20b474。但我不确定如何从那里改进。 – juanpastas

+0

我使用过'ruby /home/vagrant/.rvm/gems/ruby-1.8.7-p352/gems/ruby-prof-0.13.1/bin/ruby-prof config/environment.rb' – juanpastas

回答

0

原来,大部分时间都在加载文件中度过的,我开始一个新的Rails 2.3项目与更大的应用程序的一部分模型,时间从一分多钟减少到约5秒钟。