Railsサイトの各ページのキャッシュから読み取られるオクテットの数を知るために、簡単なベンチマークを実行しようとしています。Rails.cacheから取得するデータについて話しています。
123Ko/145Ko
ページ下部にのようなものを表示したいのですが。
このタスクを実行するための宝石は存在しますか、それともルビー標準ライブラリに何かが含まれていますか?
Railsサイトの各ページのキャッシュから読み取られるオクテットの数を知るために、簡単なベンチマークを実行しようとしています。Rails.cacheから取得するデータについて話しています。
123Ko/145Ko
ページ下部にのようなものを表示したいのですが。
このタスクを実行するための宝石は存在しますか、それともルビー標準ライブラリに何かが含まれていますか?
1つのオプションは、使用しているストアをサブクラス化し、でread_entry
宣言されている保護されたメソッドを拡張することです。このメソッドと他のキャッシュ自体がサブクラスになります。ActiveSupport::Cache::Store
FileStore
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')
には、環境に追加します。この方法ですべてのストアをサブクラス化できると思います。