環境: Windows 8 64 ビット、Windows 2008 サーバー 64 ビット Visual Studio (プロフェッショナル) 2012 64 ビット
リストL; //私のプログラムには何千もの大きな CMyObject がキャッシュされており、これは Windows サービス プログラムのさまざまなスレッドによって共有されています。
当社の SaaS ミドルウェア製品では、何千もの大きな C++ オブジェクト (読み取り専用の const オブジェクト、それぞれのサイズは約 4MB) をメモリにキャッシュし、システムのメモリを使い果たします。ディスク ファイル (または OS が管理するその他の永続的なメカニズム) を C++ オブジェクトに関連付けることはできますか? 共有/プロセス間通信の必要はありません。
ディスク ファイルは、プロセス (Windows サービス プログラム) の実行中に機能する場合は十分です。読み取り専用の const C++ オブジェクトは、同じ Windows サービス内の異なるスレッドによって共有されます。
オブジェクト データベース (mongoDB など) を使用してオブジェクトを格納することも検討していました。オブジェクトは、使用するたびにロード/アンロードされます。シリアル化されたファイルを読み取るよりも高速ですが (うまくいけば)、パフォーマンスは低下します。
目的は、パフォーマンス上の理由から C++ オブジェクトのキャッシュを保持し、シリアル化された C++ オブジェクトを毎回ロード/アンロードする必要がないようにすることです。このディスク ファイルが OS で管理され、コードの微調整が最小限で済むようになれば素晴らしいと思います。
ご回答ありがとうございます。