かなり大きなアルゴリズムでテキストファイルとは異なるデータを評価しています。Java GCのオーバーヘッドの上限を超えました - カスタムソリューションが必要です
テキストファイルには、データポイント(私は必要最低限がかなっている130万個のデータポイントのように。)それは次のエラーを与えるよりも多く含まれている場合:
Exception in thread "main" java.lang.OutOfMemoryError: GC overhead limit exceeded
at java.util.regex.Matcher.<init>(Unknown Source)
at java.util.regex.Pattern.matcher(Unknown Source)
at java.lang.String.replaceAll(Unknown Source)
at java.util.Scanner.processFloatToken(Unknown Source)
at java.util.Scanner.nextDouble(Unknown Source)
私は次の設定でEclipseでそれを実行しています私はテキストファイルの一部を通る場合、それが正常に動作することを
-Xms20m -Xmx1024m -XX:MinHeapFreeRatio=20 -XX:MaxHeapFreeRatio=40 -XX:NewSize=10m
-XX:MaxNewSize=10m -XX:SurvivorRatio=6 -XX:TargetSurvivorRatio=80
-XX:+CMSClassUnloadingEnabled
注:インストールJRE6(標準VM)のために。
は今、私はこのテーマについて多くを読んで、どこかに私がデータ漏洩または私は(私は私がそう思う)の配列でも多くのデータを格納していますいずれかが必要と思われます。今私の問題がある:私はこの問題を回避することができますか?
- 計算を実行できるように自分の設定を変更することはできますか、本当により多くの計算能力が必要ですか?私はそれが配列内のデータを入れて、それはそれを処理させるよりも、CPUのIDのとポインタを使用することをお勧めしますことをどこかで読ん
- (つまりを得るには考え)。しかし、ポインタだけを提供するようにコードを変更するにはどうすればよいですか?
基本的に私は膨大なメモリの記憶/リークを防ぐための一般的なガイドラインを探しています。
どのような意味があるのか正確に知ることができますか?私たちが持っているのは、あなたが思っていることだけです。 –
私はこれを読んでいます:http://stackoverflow.com/questions/1393486/what-does-the-error-message-java-lang-outofmemoryerror-gc-overhead-limit-excee –
私はあなたがこのためのプロファイラー。私は特にvisualgcをお勧めします。 –