0

コマンドライン スクリプトで Rails をブートストラップするには、長い時間がかかります (2.5 秒以上)。次に例を示します。

timer = Time.now  
ENV["RAILS_ENV"] ||= "development"  
require File.expand_path('../../config/application', __FILE__)  
Rails.application.require_environment!  
puts "Init complete in #{Time.now - timer} sec"  
# -> Init complete in 2.621531 sec  

何か不足していますか?そうでない場合、モデルにアクセスするためにすべてをブートストラップする必要がありますか?

4

1 に答える 1

0

これについてはあまり経験がありませんが、application.rbで必要なライブラリの数を減らすことを検討する必要があります。

# require 'rails/all' # remove this and only require what you need
require 'activerecord/railtie' # this may be all you need

さらに、ロードしているgemを調べて、それらのいずれかが異常な時間を費やしていないかどうかを確認します。特定のgemが起動時間を遅くしている場合は、次を追加するだけです。

# you will need to explicitly load the gem when needed,
# but it won't be required at boot time 
gem some_gem, :require => false

スクリプトを実行する特別な環境を作成し、その環境の起動プロセスをカスタマイズできます。

そのコードブロックのプロファイルを作成し、ほとんどの時間が費やされている場所を確認する必要があります。

ブートレールから抜け出そうとしているのは正確には何ですか?モデルへのアクセス?基礎となるデータ?おそらく、すべてのレールを起動する以外の方法があります。

于 2013-03-07T06:02:33.900 に答える