【发布时间】:2013-01-17 06:06:21
【问题描述】:
我已经看过这个问题的答案,但我不知道哪个答案的执行速度最快。这些是我见过的答案——哪个最好?
- 使用 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 行。
【问题讨论】:
-
什么是“大”文件?你在用它做什么?性能真的重要吗?您是否尝试过对任何东西进行基准测试?
-
至少 500,000 行,每行数万个字符。对于每一行,我都会对数据库做一些事情。性能确实很重要。我没有对任何东西进行基准测试,但我想知道是否有明显的答案,仅根据它们的工作方式,哪些更快或更慢。
-
可能是本地的。
-
我的直觉说文件读取部分不会是你的问题。真正的问题是您是否可以将文件放入内存中,如果可以,您如何有效地处理它。我的猜测是您将花费程序的大部分时间来解析文件,因此如果您想要加快速度,您可能需要使用这些详细信息更新此问题。
标签: ruby-on-rails ruby performance file io