0

MVC間の「ロジックの速度」について質問があります。
モデル、ビュー、およびコントローラーに、次のような同じコードがあるとします。

1)ロジックとクエリを「コンパイル」する速度は3つすべて(MVC)で同じですか?

擬似コード

x = model.where(:a > 3, b < 9).a.first
y = model.sum(:a)
z = (x / y) * 2310.0
Date.today - 5

これは「ばかげた」擬似コードですが、アプリで最もよく使用されるコード行のパフォーマンスを知りたいです(whereクエリの呼び出し、sum(集計)クエリの呼び出し、計算、日付の操作)

問題は、私のページの読み込みが少し遅いことです。でクエリを管理し、Modelsインデックスを追加するすべてのものを置き換えました。キャッシュを追加することで問題を少し解決できるかもしれません(ただし、キャッシュできないと思うHighchartsを使用しています)。

2)コードのボトルネック(ページの読み込みを遅くする)がどこにあるかをどのように見つけることができますか?

4

1 に答える 1

1

いくつかの既知のツールを使用して、コントローラー/アクション/ビュー/モデルのプロファイルを作成できます。

  1. NewRelic(分散して時間を追跡するのに適したエージェントです。これがいいと思います)

  2. Librato(コントローラー/アクションがヒットするたびにメトリックを渡すことができ、一定期間にわたって結果を得ることができるエージェント)

  3. Railsコンソールは、コントローラー、ビュー、アクティブレコードで費やされた時間の分布を出力します。あなたは間違いなくここでいくつかの良いことを追跡することができます。(添付のスクリーンショットを参照してください)。

ここに画像の説明を入力してください

于 2013-03-12T10:21:47.790 に答える