У меня большой CSV-файл (168 МБ, 149K строк, 125 столбцов).
Я хочу получить сумму третьего столбца с помощью следующего кода:
def tot = 0
new File("/path/to/big/file.csv").splitEachLine(";") { row ->
try {
tot += row[2].toBigDecimal()
} catch(Exception e) {}
}
println tot
и это занимает 11 секунд:
root@front1:~# time groovy test.groovy
8691797.09805144
real 0m10.965s
user 0m9.977s
sys 0m0.500s
root@front1:~#
У меня похожий код, написанный на php, который занимает всего 2 секунды, чтобы получить тот же результат на той же машине.
Есть ли какой-либо настройки или лучший код, который я должен сделать в groovy / grails, чтобы получить то же время выполнения?
Спасибо
Groovy версия: 2.3.8 JVM: 1.6.0_29 Поставщик: Корпорация Oracle ОС: Linux
Задача ещё не решена.
Других решений пока нет …