11

大きなファイルを解析すると、次のエラーが発生しますCaught: java.lang.OutOfMemoryError: Java heap space

ヒープサイズを超えずにGroovyで大きなファイルを解析するにはどうすればよいですか?

大きなファイルで失敗するサンプルコード...

import java.io.File

def inputFile = new File("c:/dev/test.txt")
    inputFile.getText().eachLine{ it, i ->
            ... do something with each line
        }
4

1 に答える 1

18

ファイル全体をメモリにロードしない方法でファイルを反復処理していることを確認してください...

  • この場合、具体的にはinputFile.getText()。eachLineinputFile.eachLineに変換します
  • .readLines()はファイル全体をメモリにロードしようとするため、使用しないでください。代わりにeachLine{..}を使用する必要があります
  • を使用して、jvmフラグを使用してヒープサイズを1GBに拡張することもできます。こちらの回答groovy -Xmx1024M myscript.groovyも参照してください。

詳細と詳細については、Groovyメーリングリストのこのページを参照してください。

ヒープスペースエラーなしで機能するコード...

def inputFile = new File("c:/dev/test.txt")
inputFile.eachLine{ it, i ->
        ... do something with each line
    }
于 2012-04-17T11:47:32.900 に答える