長いSQLクエリを実行し、処理された結果をHashMapに格納するプログラムを使用しています。現在、20〜200の各クエリの実行時間が遅いことを回避するために、固定スレッドプールとカスタム呼び出し可能オブジェクトを使用して検索を行っています。その結果、各呼び出し可能オブジェクトはデータのローカルコピーを作成し、それをメインプログラムに戻してレポートに含めます。
以前は問題なく実行されていた100個のクエリレポートにより、メモリが不足していることに気付きました。私の推測では、これらの呼び出し可能オブジェクトはデータの独自のコピーを作成しているため、それらを別の大きなHashMapに結合すると、メモリ使用量が2倍になります。呼び出し可能オブジェクトのテーブルのスコープを縮小することで、ガベージコレクターを実行するように誘導できることはわかっていますが、回避できるのであれば、そのレベルの再構築は実際にはやりたいことではありません。
呼び出し可能オブジェクトを、データを格納する代わりに同時HashMapに書き込む実行可能オブジェクトに置き換えることで、メモリ使用量を改善できますか?それとも、ここで他の問題があるように聞こえますか?