0

Railsサイトの各ページのキャッシュから読み取られるオクテットの数を知るために、簡単なベンチマークを実行しようとしています。Rails.cacheから取得するデータについて話しています。

123Ko/145Koページ下部にのようなものを表示したいのですが。

このタスクを実行するための宝石は存在しますか、それともルビー標準ライブラリに何かが含まれていますか?

4

1 に答える 1

1

1つのオプションは、使用しているストアをサブクラス化し、でread_entry宣言されている保護されたメソッドを拡張することです。このメソッドと他のキャッシュ自体がサブクラスになります。ActiveSupport::Cache::StoreFileStore

FileStoreWithReadTracking < ActiveSupport::Cache::FileStore
  def start_page
    @octets_read = 0
  end

  def octets_read
    @octets_read
  end

  protected

    def read_entry(key, options)
      entry = super(key, options)
      @octets_read += entry.size if entry
      entry
    end
end

start_pageページを開始するときに、オクテットカウントをゼロにするために呼び出すことができます。read_entryはキャッシュが読み取りを実行しようとするたびに使用される低レベルのメソッドであるため、読み取られたデータをインターセプトして、データを返す前にそのサイズを取得できます。sizeオクテットに変換する必要があるかもしれません。

これをカスタムキャッシュストアとして設定するconfig.cache_store = FileStoreWithReadTracking.new('/path/to/file/store')には、環境に追加します。この方法ですべてのストアをサブクラス化できると思います。

于 2012-10-04T21:04:05.980 に答える