日本語版
最新ニュース
企業

キャッシュキーを短くしてください

最近の顧客エンゲージメントでは、メモリの使用量が異常に高い顧客を調べました。他の発見の中でも、私はそれほどよく知られていなかったと思います。しかし、彼らが言うように、小さな詳細は大きな違いを生むことができます。そして、今日の投稿のその小さな詳細はキャッシュキーです。テストしましょう。これは、私がCopholdを足場に求めたものであり、それからいくつかの小さな調整を求めたものです。テストは、10.000アイテムをキャッシュに追加し、各エントリを10回読み取ることです。非常に短いプレフィックスを使用した1つのテスト、もう1つは長い(ただし、それほど長くはありません)。using System; using System.Runtime.Caching; using BenchmarkDotNet.Attributes; using BenchmarkDotNet.Running; namespace MemoryCacheBenchmarkDemo { // Use MemoryDiagnoser to capture memory allocation metrics during benchmarking. [MemoryDiagnoser] public class MemoryCacheBenchmark { private const int Iterations = 10_000; private const int ReadIterations = 10;…

キャッシュキーを短くしてください

1745111427
2025-04-09 09:23:00

最近の顧客エンゲージメントでは、メモリの使用量が異常に高い顧客を調べました。他の発見の中でも、私はそれほどよく知られていなかったと思います。しかし、彼らが言うように、小さな詳細は大きな違いを生むことができます。そして、今日の投稿のその小さな詳細はキャッシュキーです。

テストしましょう。これは、私がCopholdを足場に求めたものであり、それからいくつかの小さな調整を求めたものです。テストは、10.000アイテムをキャッシュに追加し、各エントリを10回読み取ることです。非常に短いプレフィックスを使用した1つのテスト、もう1つは長い(ただし、それほど長くはありません)。

using System;
using System.Runtime.Caching;
using BenchmarkDotNet.Attributes;
using BenchmarkDotNet.Running;

namespace MemoryCacheBenchmarkDemo
{
    // Use MemoryDiagnoser to capture memory allocation metrics during benchmarking.
    [MemoryDiagnoser]
    public class MemoryCacheBenchmark
    {
        private const int Iterations = 10_000;
        private const int ReadIterations = 10;

        [Benchmark(Description = "MemoryCache with Short Keys")]
        public void ShortKeysBenchmark()
        {
            using (var cache = new MemoryCache("ShortKeysCache"))
            {
                const string Prefix = "K";
                // Insertion phase using short keys (e.g., "K0", "K1", ...)
                for (int i = 0; i ();
        }
    }
}

そして違い。短いキーが速くなるだけでなく、割り当てがかなり少なくなります(したがって、ゴミコレクション)

キャッシュキーの唯一の要件は、それが一意であることです。メモリダンプを調べなければならない場合は、それをコーディングすることは理にかなっているかもしれません(私はあなたが決していないことを望みます 持っている に、しかし、それは痛みを伴い、楽しい経験です) – あなたはこれがこれとは何かを知っています。たとえば、Commerceには、注文キャッシュキー用のこのプレフィックスがあります。

EP:EC:OS:

そしてそれだけです。 EPはEpiserver(私たちが私たちであることを知っている)の場合は短い手で、ECはeコマース用で、OSは注文システム用です。 (私は知っています、それは歴史的な理由で非常に長い間そうでした、そして誰もそれを変えることを悩ませません)

次回クラスにキャッシュを追加するときは、可能な限り最短のキャッシュキーを使用してください。それはミクロの最適化ではありません。あなたがそれがより良いことを知っているなら、なぜですか?

#キャッシュキーを短くしてください

執筆者について: nipponese

Nipponese News編集部は、国内外のニュースを日本語で分かりやすくお届けします。