|
[ruby-list:42468] Re: 多量の正規表現との効率的なマッチのアイデアを、、: msg#00122lang.ruby.japanese
From: しん <dezawa-eY1vtc/6GtbR7s880joybQ@xxxxxxxxxxxxxxxx> Subject: [ruby-list:42467] Re: 多量の正規表現との効率的なマッチのアイデアを、、 Date: Fri, 23 Jun 2006 20:13:20 +0900 > ブロックを使うととつぜんrubyらしくなる。 Rubyの醍醐味です^^ > File.read("testdata") ここについて質問です。 > > 巨大なファイルをこうやって読んでしまうと、メモリはどうなるのでしょう。 > 400Byte/行 10000行位のデータがあります。 この程度のファイルなら問題ないと思いますけど… 僕の場合数十MBくらいまでは一度に読み込んでしまいます。 どうしても心配ならば、こんなイテレータを定義して、 def gets_chomp_iter(filename) open(filename) do |f| while line = f.gets yield(line.chomp) end end end File.read("testdata").split(/\n/).each do |line| を gets_chomp_iter("testdata") do |line| に置き換えてみましょう。 「1行1行処理していく」というレベルで抽象化されているので、 そのまま置き換えがききます。 openはブロックを持てます。ブロックの実行が終わったときに自動でcloseされます! yieldでブロックの実行にうつります。 # 名前がアレですが… > 多分、2、3ケ月のうちに処理するデータが 1G位になりそうなので、、、 うおっ! こうなると集計をincrementalに行うことを考えたほうがいいかもしれません。 -- rubikitch http://www.rubyist.net/~rubikitch/
|
|
| <Prev in Thread] | Current Thread | [Next in Thread> |
|---|---|---|
| Previous by Date: | [ruby-list:42467] Re: 多量の正規表現との効率的なマッチのアイデアを、、, しん |
|---|---|
| Next by Date: | [ruby-list:42469] Re: 多量の正規表現との効率的なマッチのアイデアを、、, rubikitch |
| Previous by Thread: | [ruby-list:42467] Re: 多量の正規表現との効率的なマッチのアイデアを、、, しん |
| Next by Thread: | [ruby-list:42469] Re: 多量の正規表現との効率的なマッチのアイデアを、、, rubikitch |
| Indexes: | [Date] [Thread] [Top] [All Lists] |
| News | FAQ | advertise |