在Ruby中读取输入的最有效方法
发布时间:2020-12-17 02:28:00 所属栏目:百科 来源:网络整理
导读:在 Ruby中,读取巨型文本文件的最有效方法是什么?大约107行,89字节/行.一种方法明显优于另一种吗? 解决方法 我一段时间做了一些基准测试,看看加载文本文件的好方法.最快的是读取文本块,然后使用String.lines迭代它们. 读取188,593,869字节的文本文件作为基
在
Ruby中,读取巨型文本文件的最有效方法是什么?大约107行,89字节/行.一种方法明显优于另一种吗?
解决方法
我一段时间做了一些基准测试,看看加载文本文件的好方法.最快的是读取文本块,然后使用String.lines迭代它们.
读取188,593,869字节的文本文件作为基线: IO.foreach(ARGV.shift) do |li| print li end time ruby test.rb root.mbox > /dev/null # # real 0m3.949s # user 0m3.709s # sys 0m0.182s 我将其转储到/ dev / null以从时间中删除屏幕I / O. 而不是逐行读取,将其加载到一个大块中然后迭代线: File.read(ARGV.shift).lines do |l| print l end time ruby test.rb root.mbox > /dev/null real 0m3.492s user 0m3.281s sys 0m0.209s 那是0.5秒的节省.它还吸收了188MB的数据,如果你有更大的文件,它几乎不能很好地扩展.好的是你可以告诉它加载整个文件,我做了,使用 这是wc为文本文件清理的输出,供您参考: lines: 2,465,369 words: 26,466,463 bytes: 188,869 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |