Сценарий следующий. У меня есть простой текстовый файл, который содержит 2 000 000 строк с идентификатором. Этот список идентификаторов необходимо преобразовать в простой файл XML. Следующий код работает нормально, если во входном файле всего несколько тысяч записей.
def xmlBuilder = new StreamingMarkupBuilder()
def f = new File(inputFile)
def input = f.readLines()
def xmlDoc = {
Documents {
input.each {
Document(myAttribute: it)
}
}
}
def xml = xmlBuilder.bind(xmlDoc)
f.write(xml)
Если обработано 2 000 000 записей, я получаю исключение OutOfMemoryException для кучи Java (установлено на 1024M). Есть ли способ улучшить приведенный выше код, чтобы он мог обрабатывать большие объемы данных?
Cheers,
Роберт