ASP.NET HttpRuntime.Cache vs. HttpContext.Current.Cache … HttpContext.Current はコストが高い

HttpRuntime.Cache vs. HttpContext.Current.Cache によると、HttpRuntime.Cache の方がパフォーマンスがよいとのこと。

確かに HttpContext.Current 経由ではたくさんのデータが取得可能なので、ここへのアクセスが相対的にコスト高だというのは感覚としては理解できる。計測してないのでどれぐらいの効果があるかは不明。

なんでこんなことを調べたかというと、Enterprise Library の Policy Injection CachingCallHandler のところで、自前でキャッシュハンドラを持っているのをASP.NET 向けに HttpCache に差し替えたいなあと思ったら、ソースを見たところ「CachingCallHandler の中身は実は直接 HttpRuntime.Cache に入れるだけだった」という実装だったため。

ソース見てたら欲を出してキャッシュの優先度指定ができるハンドラを書きたくなってしまった。

機能自身は変化しないけどパフォーマンスに影響するパラメータを後から差し込めるというのは、SQLのindexもそうだけど、非常に筋がいいので戦う価値は十分にあると思う。

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。