Hibernateデータストレージを含むJavaプログラムを使用していくつかの実験を実行しています。実験には多くの試行を含めることができ、各試行には多くのテストを含めることができます。各実験は、単一のSpringトランザクションで実行されます。
テストの量が少ない場合はすべて問題ありませんが、データ量が増えると、Javaヒープスペースのメモリ不足の問題が発生し始めます。1回のトランザクションで処理しているデータの量を考えると、メモリの問題は妥当なようです。
これに対する私の現在の回避策は次のとおりです。
Set up and save the initial Experiment
Run a set of Tests.
Summarise the Test results and create a Trial record
Delete the Test records
Save the completed Trial
Prompt the Garbage Collector to run
これは機能し、フレームワークを使用して広範な実験を行うことができます。ただし、メモリの問題を防ぐために詳細なテストレコードを削除する必要があったため、詳細なテストレコードのデータ分析を実行するためのアクセス権がなくなりました。
私がやりたいのは、テストレコードをファイルに保存してから、ヒープから「アンロード」することです。トライアルには、保存されたテストレコードを含む1つがまだありますが、テストが完了したため、メモリ内の詳細は必要ありません。
Set up and save the initial Experiment
Run a set of Tests.
Summarise the Test results and create a Trial record
Save the Trial (with cascade saves for all Test records)
Unload the complete Test records
Prompt the Garbage Collector to run
誰かが私の問題の解決策を考えることができますか?