ruby-on-rails – 在Ruby中读取大文件的最快方法是什么?

前端之家收集整理的这篇文章主要介绍了ruby-on-rails – 在Ruby中读取大文件的最快方法是什么?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我已经看到了这个问题的答案,但我无法弄清楚哪个答案会以最快的速度完成.这些是我见过的答案 – 哪个最好?

>使用each或each_line一次读取一行
>使用gets一次读取一行
>使用readlines将所有内容保存到一个行数组中,然后使用每个行
>使用grep(不确定与grep究竟有什么关系……)
>使用sed(不确定与sed究竟有什么关系……)
>还有别的吗?

另外,使用另一种语言或Ruby应该没问题会更好吗?

编辑:

更多细节:每行包含类似“id1 attr1_1 attr2_1 id2 attr1_2 attr2_2 … idn attr1_n attr2_n”(n非常大),我需要将它们插入数据库.对于该示例行,我需要在数据库中插入n行.

解决方法

Ruby可能会使用相同或非常相似的低级代码(用C语言编写)来从磁盘实际读取前三个选项,因此它们应该执行类似的操作.鉴于此,您应该选择最适合您的方式;这样做的能力使像Ruby这样的语言非常有用!您将从磁盘读取大量数据,因此我建议您在阅读时使用each_line并处理每一行.

我不建议将grep,sed或任何其他此类外部实用程序添加图片中,除非您有充分的理由,因为它们会使您的代码不那么便携,并使您面临可能难以诊断的故障.

猜你在找的Ruby相关文章