dpwle46882 2014-12-07 20:07
浏览 114

Groovy / Grails在阅读大型csv文件时速度很慢

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

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 三菱伺服电机按启动按钮有使能但不动作
    • ¥20 为什么我写出来的绘图程序是这样的,有没有lao哥改一下
    • ¥15 js,页面2返回页面1时定位进入的设备
    • ¥200 关于#c++#的问题,请各位专家解答!网站的邀请码
    • ¥50 导入文件到网吧的电脑并且在重启之后不会被恢复
    • ¥15 (希望可以解决问题)ma和mb文件无法正常打开,打开后是空白,但是有正常内存占用,但可以在打开Maya应用程序后打开场景ma和mb格式。
    • ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝
    • ¥20 腾讯企业邮箱邮件可以恢复么
    • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?
    • ¥15 错误 LNK2001 无法解析的外部符号