I have a big csv file (168MB, 149K rows, 125 cols). I want to get the sum of the third column with the following code:
def tot = 0
new File("/path/to/big/file.csv").splitEachLine(";") { row ->
try {
tot += row[2].toBigDecimal()
} catch(Exception e) {}
}
println tot
and it takes 11 secs:
root@front1:~# time groovy test.groovy
8691797.09805144
real 0m10.965s
user 0m9.977s
sys 0m0.500s
root@front1:~#
I've a similar code written in php that takes only 2 seconds to get the same result on the same machine.
Is there any tuning or better code that I should do in groovy/grails in order to get the same execution time ?
Thanks
Groovy Version: 2.3.8 JVM: 1.6.0_29 Vendor: Oracle Corporation OS: Linux