問題タブ [memorycache]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - C#4.0MemoryCache-依存関係に変更が加えられたときに依存キャッシュエントリを削除する方法
依存している他のエントリに変更が加えられたときに、MemoryCacheからエントリを削除しようとしています。これは、依存キーへの依存関係のキャッシュエントリ変更モニターを作成することによって設定されています。
OnChangedCallBack
方法は次のとおりです。
アイテムは意図したとおりにキャッシュに追加されOnDependencyChanged
、監視対象のキーに変更が加えられると、メソッドは期待どおりに呼び出されますが、渡される「状態」インスタンスは常にnullであるため、キャッシュについて何も知りません。依存関係が変更されたため、計画された削除を実行できないキー。
私はここで何かを逃したことがありますか、私はこれをすべて間違った方法で行っていますか?
c - C volatile 変数とキャッシュ メモリ
キャッシュはプロセッサに対して透過的にキャッシュ ハードウェアによって制御されるため、C プログラムで揮発性変数を使用する場合、プログラムがキャッシュではなく指定された実際のメモリ アドレスから毎回データを読み取ることがどのように保証されるのでしょうか。
私の理解では、
Volatile キーワードは、変数参照を最適化せず、コードでプログラムされたとおりに読み取る必要があることをコンパイラに伝えます。
キャッシュはキャッシュ ハードウェアによって透過的に制御されるため、プロセッサがアドレスを発行するとき、データがキャッシュからのものかメモリからのものかはわかりません。
したがって、必要なたびにメモリアドレスを読み取る必要がある場合、キャッシュからではなく必要なアドレスから参照されるようにするにはどうすればよいですか?
どういうわけか、これら 2 つの概念はうまく適合しません。その方法を明確にしてください。
(キャッシュにライトバック ポリシーがあると仮定します (問題の分析に必要な場合))
ありがとう、マイクロカーネル:)
c# - 複数の MemoryCache インスタンスの使用
名前空間を使用してアプリケーションにキャッシュ機能を追加しSystem.Runtime.Caching
たいと考えており、おそらく複数の場所や異なるコンテキストでキャッシュを使用したいと考えています。そのために、いくつかの MemoryCache インスタンスを使用したいと考えています。
ただし、MemoryCacheの複数のインスタンスを使用することはお勧めできません。
MemoryCache はシングルトンではありませんが、いくつかの MemoryCache インスタンスのみ、場合によっては 1 つのみ作成する必要があり、アイテムをキャッシュするコードはそれらのインスタンスを使用する必要があります。
複数の MemoryCache インスタンスはアプリケーションにどのように影響しますか? アプリケーションで複数のキャッシュを使用することは非常に一般的なシナリオであるように思われるため、これは奇妙に思えます。
編集:より具体的には、インスタンスごとにキャッシュを保持する必要があるクラスがあります。使用を避けてMemoryCache
、別のキャッシュ ソリューションを探す必要がありますか? この状況での使用MemoryCache
は悪いと見なされますか? もしそうなら、それはなぜですか?
c# - MemoryCacheアイテムはコールバックを削除し、正常に終了します
アイテムをMemoryCacheに保存した後、アイテムが削除されたときにクリーンアップを行う必要があります。削除されたアイテムのコールバックを設定しましたが、これはうまく機能します。私の質問は、アプリが例外などで異常に終了した場合、またはシステムのシャットダウン中に終了した場合、キャッシュ内の各オブジェクトに対してコールバックが呼び出されるようにするにはどうすればよいですか?
追加情報:キャッシュされた要素には、APIへの呼び出しの実行回数が含まれます(ユーザーごとに1つのオブジェクト)。これらのカウントをキャッシュを終了するときにデータベースにコミットしたいので、プロセスの現在のボトルネックである呼び出しごとにデータベースで更新を実行する必要はありません。
asp.net-mvc - .Net 4 Memory Cache class and user Session
The new class MemoryCache in .Net 4.0 appears to act just like asp.net caching. My questions are:
Is MemoryCache equivalent to storing an object/value in for a user in Session Cache, but not in the code behind of an aspx page.
Can a value stored in MemoryCache, which exists on the server, be accessable to a web page event?
c# - リージョンをサポートする MemoryCache?
キャッシュ機能を追加する必要があり、MemoryCache という新しい光沢のあるクラスを見つけました。ただし、MemoryCache はそのままでは少し不自由だと思います (リージョン機能が必要です)。とりわけ、ClearAll(region) のようなものを追加する必要があります。作成者は、次のようなコードで、リージョン サポートなしでこのクラスを維持するために多大な努力を払いました。
ほとんどすべての方法で飛ぶ。この動作をオーバーライドする簡単な方法がわかりません。私が考えることができる領域サポートを追加する唯一の方法は、MemoryCache を継承するクラスとしてではなく、MemoryCache のラッパーとして新しいクラスを追加することです。次に、この新しいクラスでディクショナリを作成し、各メソッドにリージョン呼び出しを「バッファリング」させます。厄介で間違っているように聞こえますが、最終的には...
領域を MemoryCache に追加するより良い方法を知っていますか?
appharbor - AppHarbor でのバックグラウンド タスクのシミュレーション
System.Runtime.Caching.MemoryCache を使用して、AppHarbor にデプロイされた実行中の .NET MVC アプリケーションで繰り返されるタスクをシミュレートしています。
キャッシュ内のエントリは、AbsoluteExpiration オフセットを含む CacheItemPolicy と、メソッドを呼び出してキャッシュ内のアイテムの追加を再トリガーする RemovedCallback を使用して追加されます (ここで説明されているように) 。
MemoryCache は、Application_Start で初めて読み込まれます。ローカルでは問題なく動作しますが、AppHarbor にデプロイすると動作しないようです (HttpRuntime.Cache でも試してみましたが、同じ結果です)。
私のアプリケーションは、ワーカーが 1 つしかない AppHarbor の CANOE (無料) アカウントで実行されています。これは、有料プランにアップグレードするまでバックグラウンド タスクをシミュレートできないということですか?
ありがとう!
browser - ディスクにキャッシュしないブラウザ
ページ(およびその他のデータ)をディスクに明示的にキャッシュしない既知のWebブラウザー実装(またはブラウザーオプション)はありますか?
私はメモリにのみキャッシュする実装を探しています(明らかに、プロセスが終了するとキャッシュは破棄されます)。OSページングなどの外部ディスク書き込み要因を無視しています。
c# - MemoryCache UpdateCallback が機能しない
サードパーティ API への接続のプールを作成しようとしていますが、接続が使用されていない場合、一定間隔で接続が期限切れになります。有効期限が切れると、サードパーティ API を介して切断する必要があります。
MemoryCache (System.Runtime.Caching) がこれを処理するように見えました。ただし、UpdateCallback は奇妙な動作をしているようです。
簡単な LINQPad の例:
これを実行すると、出力は次のようになります。
「ここに着いた」は出力しません。
で始まる行をコメントアウトするとpolicy.UpdateCallback
、出力は次のようになります。
私は何を間違っていますか?
私の仕事を達成するためのより良い方法があれば、私は別の提案を受け入れます.