1

簡単なテストを書きました

  1. [コレクション]に100アイテム追加
  2. [コレクション]からランダムに1000000回読みます

いつ

  • [コレクション]==HttpContext.Current.Items50ミリ秒かかります
  • [コレクション]==HttpRuntime.Cacheには430ミリ秒かかります
  • [コレクション]==ハッシュテーブル|| [コレクション]==辞書170ms

HttpRuntime.Cacheのオーバーヘッドは同期だと思います

HashTable / Dictionaryの初期容量を変更しようとしていますか?しかし、成功しませんでした。

このターボHttpContext.Current.Itemsの理由を知っている人はいますか?この種のオブジェクトをカスタムキャッシュの実装に作成できますか(もちろん、syncが意味します)。

4

1 に答える 1

2

キャッシュが遅い理由は、ご想像のとおり、スレッドセーフであるためです。

の基になるタイプHttpContext.Current.ItemsはプレーンHashtableです。おそらく、コードのスニペットを入れれば、3番目の項目との違いを説明できるでしょう。

于 2011-02-16T11:31:41.230 に答える