gwt-webapp のサーバー側でグアバのキャッシュを使用しています。しかし、キャッシュを適切に構成するには、いくつかの「テレメトリ」を知る必要があります。最初に、1 つのキャッシュ エントリがどれだけのメモリを必要とするかを知る必要があります。これまでのところ、jconsole と visualvm を試しました。問題は、どこを見ればいいのかわからないことです。ConcurrencyHashMap とそのエントリを探しましたが、正しいインスタンス数が見つかりません。
では、(グアバ) キャッシュをプロファイリングするための適切でおそらく簡単な方法は何ですか?
(現時点では、キャッシュのサイズの概算/平均(エントリ)を取得するためのツールにお金を払う準備ができていません)
議論の状況の要約: Aaron Digulla は、弱い参照を使用し、Java にメモリ管理の仕事を任せることを提案しています。しかし、以前の質問では、弱い参照を使用する際のパフォーマンスの問題のために、人々はキャッシュを「調整、監視、調整」することを提案しています。
更新 OK 私の質問はおそらく誤解を招くものでした-キャッシュやそのオーバーヘッドについて知りたくありません。特定のオブジェクトのインスタンスの大きさを知りたい - キャッシュを構成する (この場合はグアバ)。私が答えなければならない最初の質問は、メモリ内のすべてのインスタンスを取得できるか (ヒット率 100%)、またはこれに必要なメモリ量はどれくらいかということです。これが可能な場合、キャッシュ構成は必要ありません。すべてのオブジェクトがあまりにも多くのメモリを消費する場合、構成について考える必要があります。オブジェクトの平均メモリ フットプリントについて何か言えるツールがあることを願っています。