3

次のようなことに気付いたとき: 次のような単純なメソッドの仕様で 0.15 秒:

class String
  def to_slug
    (self.dup).gsub(/["']/, '').gsub(/@/, 'at').gsub(/&/, 'and').parameterize
  end
end

何が起こっているのか自問し始めたので、パラメーター化せずにメソッドをベンチングした後、これはパラメーター化の内部の問題であり、必ずしもメソッド自体の問題ではないと判断しましたが、ロード方法では、遅延しているように思えますそのようなモンキーパッチを積極的にロードする必要があるときにロードされると、IMO が存在しない場所でレイテンシが発生します。私の質問は、Rails はパラメータ化を含むファイルを本当に遅延ロードするのか、Rails に String やその他の stdlib へのパッチを積極的にロードするよう説得する方法があるのか​​ということです。

4

1 に答える 1

1

config.threadsafe!あなたを呼び出すとconfig/environments/test.rb、起動時にすべてのコードが強制的に読み込まれます。これは に設定さcache_classesれるtrueため、環境で使用しないでdevelopmentください。コードのリロードが失われることに注意してください。

config.eager_load_paths別の方法は、ロードするディレクトリを含めるように変更することです。

資力:

于 2012-07-26T06:47:26.883 に答える