日食から次のエラーメッセージが表示されます。
Exception in thread "th3" java.lang.OutOfMemoryError: Java heap space
at java.util.Arrays.copyOf(Unknown Source)
at java.util.Arrays.copyOf(Unknown Source)
at java.util.ArrayList.ensureCapacity(Unknown Source)
at java.util.ArrayList.add(Unknown Source)
at Apeiron.FBM.Analysis.Clustering.Key.PatternClusterKey.Load(PatternClusterKey.java:260)
at Apeiron.FBM.Analysis.UserBin.WaferUserDefineBin.CreatePatternClusterKey(WaferUserDefineBin.java:50)
at Apeiron.FBM.Analysis.UserBin.UserDefineBin.Load(UserDefineBin.java:244)
at Apeiron.FBM.Analysis.UserBin.WaferUserDefineBinDictionary.CreateUserDefineBin(WaferUserDefineBinDictionary.java:70)
at Apeiron.FBM.Analysis.UserBin.UserDefineBinDictionary.Load(UserDefineBinDictionary.java:162)
at Apeiron.MultiCore.OutputFileCreator.LoadDictionary(OutputFileCreator.java:357)
at Apeiron.MultiCore.OutputFileCreator.run(OutputFileCreator.java:148)
at java.lang.Thread.run(Unknown Source)
Apeiron の私のプログラムは、4 つの Threads によって実行され、「org.w3c.dom.Document」で読み取れるファイルを呼び出します。そのファイルが WaferUserDefineBin のオブジェクトになります。
それで、私はいくつかの実験をしました。私が把握している現象は次のとおりです
。 1.ヒープサイズではないと思います。私のEclipseの最大メモリは256Mですが、私のプログラムは40M〜50Mしか使用しません。そして、eclipse.iniファイルからヒープサイズを512Mに拡張しようとしました。
WaferUserDefineBin を変更したファイルサイズの問題です。ファイルのサイズを小さくすると、エラーは発生しません。
マルチスレッドの問題です。ファイルのサイズが大きくても、シングルスレッドでうまく動作します。
また、ファイルの読み取り領域でロックを使用していますが、同じエラーが発生します。
私の英語力が低くてすみません。事前にご協力いただきありがとうございます。