問題タブ [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.
.net - WCF を使用して MemoryCache をホストするサービスにオブジェクトを送信する
私はWCFとMemoryCacheをいじっています。目標は、Windows サービスで WCF をホストして、さまざまなクライアントがこのキャッシュにアクセスできるようにすることです。
最初の部分であるホストのセットアップは正常に機能し、別のクライアント アプリケーションを介してキャッシュへの書き込みとキャッシュからの読み取りを行うことができます。少なくとも、文字列や int などの値型など、非常に単純なオブジェクトをキャッシュに入れようとする場合。
「カスタム」オブジェクトを試してみると、文字列プロパティしかない場合でも、問題が発生し始めます。
検索を行った結果、タイプを KnownType 属性で装飾する必要があるかもしれないことがわかりましたが、残念ながら成功しませんでした。また、DataContract および DataMember 属性で装飾しようとしましたが、シガーもありませんでした。
今何をする?WCF DataContractResolver は私のためにこの作業を行うことになっていませんか? シリアライズしたいすべてのクラスに対してカスタム DataContractResolver を作成する必要があるとは信じがたいです。DataContract および DataMember 属性は他に何のためにあるのでしょうか?
ここで何が欠けていますか?また、MyType は別のクラス (保存オブジェクト) から継承しないことに注意してください。
c# - メモリ キャッシュ .Net 4.0 パフォーマンス テスト: 驚くべき結果
このパフォーマンス テストは間違っていますか、それともシステム キャッシュが非常に優れたパフォーマンスで動作していますか?
これが私の結果です:
[13] 相互作用の数 100000 : 63 ミリ秒
[14] 相互作用の数 100000 : 139 ミリ秒
[12] 相互作用の数 100000 : 47 ミリ秒
[15] 相互作用の数 100000 : 44 ミリ秒
テスト終了。
ハードウェア : x86 Family 6 Model 23 Stepping GenuineIntel ~2992 Mhz 3.327 MB, 5.1.2600 Service Pack 3
asp.net - ディレクトリへのHostFileChangeMonitorinitでMemoryCacheを使用すると、ArgumentOutOfRangeExceptionが発生します
.NET 4のSystem.Runtime.CachingのMemoryCacheを使用していますが、ディレクトリが変更されたときにキャッシュエントリを無効にしたいです。
HostFileChangeMonitorはファイルとディレクトリの両方を処理することになっているので、次のように追加します。
しかし、例外が発生します。
これは、ASP.NETWebサイトでコードを使用した場合にのみ発生します。コンソールアプリケーション内からは正常に動作します。
これはmsconnectで見つかりましたが、HostFileChangeMonitorに追加しているディレクトリが存在します。
ご協力いただきありがとうございます。
c# - WCFサービスのObjectCacheまたはローカルフィールド?
ある種のキャッシュを実装したいサービスがありますが、.NET 4のObjectCacheを使用するか、サービスにプライベートフィールドを設定して、しばらくすると更新されるかがわかりません。
状況は次のとおりです。サービスは、大量のデータを返すために使用されます。現在、サービスへのすべてのリクエストでデータのデータベースにアクセスしています。このデータは、1日1回深夜にのみ更新されます。このデータをサービスにキャッシュし、データベースの更新後(たとえば午前12時30分頃)に毎晩更新したいと思います。
これまでは、ローカルフィールドにデータを入力し、常に実行される「モニタースレッド」を作成し、指定された時間が経過すると、それらのフィールドにデータを再入力していました。私が見た1つの欠点は、サービスクラスにストレージ用の追加のコードが含まれていることでした。
ObjectCacheに切り替えると、有効期限が切れたときに自動削除されるという利点があります。私が考えていたのは、CacheEntryRemovedCallbackデリゲートにコールバックメソッドを割り当てることでした。それが呼び出されたら、将来のある時点でデータを再キャッシュします(データベースが更新されてから約30分)。
私の質問は、WCFサービスの場合、データをキャッシュするためのより望ましいオプションは何ですか?
c# - MemoryCacheAbsoluteExpirationの動作がおかしい
.net 4.5を使用してさまざまなアイテムを追跡し、自動的に更新しようとしていますがMemoryCache、何を設定しても、AbsoluteExpiration常に15秒以上で期限切れになるようです。
キャッシュアイテムを5秒ごとに期限切れにしたいのですが、常に少なくとも15秒で期限切れになります。有効期限をタイムアウトにすると、15秒+更新間隔のようになりますが、15秒以上になることはありません。 。
表示されていない内部タイマーの解像度はありますか?反映されたコードを少し調べたところ、System.Runtime.Caching.MemoryCache目立ったものは何もありませんでした。インターネット上でこの問題を抱えている人を見つけることはできませんでした。
問題を説明する非常に基本的な例を以下に示します。
私が望んでいるのは、CacheEntryUpdate5秒ごとにヒットし、新しいデータで更新することですが、私が言ったように、15秒以上でヒットするだけです。
c# - IDictionaryをキャストする方法IDictionaryへ
私はデフォルトを使用していますMemoryCacheが、これは私の目的には問題なく機能します。ただし、GetValues()メソッドはIDictionary<string, object>
これをにキャストする簡単な方法はありIDictionary<string, MyType>ますか?
c# - できればプログラムで、MemoryCacheのサイズを見つけるにはどうすればよいですか?
のサイズを知りたいMemoryCache。
メソッドを実装したいFindSize()。
.net - .Net MemoryCache - 既存のアイテムの有効期限を更新する方法は?
Memcached API には、特定のキーの有効期限ポリシーを更新する Touch() メソッドがあります。.Net ObjectCache クラスでこれを達成するにはどうすればよいですか?
私が見ることができる最善の方法は、オブジェクトを削除して新しい有効期限で再度追加することですが、明らかにそれは最適なパフォーマンスではありません。
.net - サービスを停止せずに、実行中のWindowsサービスのSystem.Runtime.Caching.MemoryCacheをどの程度クリアしますか?
MemoryCacheを使用したいサービスがありますが、要件の1つは、サービスを停止せずに、そのMemoryCacheを手動でクリアできる必要があることです。
現在、エンタープライズライブラリのCacheManagerを使用しており(Isolated Storeを使用しているため、メモリ内にあると思います。必要に応じてファイルにダンプします)、ファイルを削除して手動でキャッシュをクリアします。新しいキャッシュライブラリを使用して、同様のことを行う方法について何かアイデアはありますか?
ありがとう!