2007年12月28日

[ruby-list:44412] 1.9.0_文字列操作_速度

こんにちは、天野竜太郎です。

1.9.0が出ました。文字列操作などは速くならないという話を聞いて
いましたが、1.8.6と比べると遅くなっている気がします。
遅くならないように書くコツはあるのでしょうか?

http://www.post.japanpost.jp/zipcode/dl/kogaki.html

上記の都道府県一覧の「全国一括」ファイル
(KEN_ALL.CSV、122388行)の","くぎりの
index2,6,7,8部分(2が7桁郵便番号、6,7,8が住
所)を取り出して、郵便番号と住所の間には半角スペースを入れる
(「日系ソフトウエア2008/02)という処理を以下のように書
くと、1.9.0の方が遅いです。

$ ruby -v
ruby 1.8.6 (2007-09-24 patchlevel 111) [universal-darwin9.0]
[08:16:09 ryutaro:~/myruby]
$ ~/mylocal/bin/ruby -v
ruby 1.9.0 (2007-12-25 revision 14709) [powerpc-darwin9.1.0]

$ time ~/mylocal/bin/ruby youbin.rb

real 0m11.871s
user 0m10.604s
sys 0m0.581s
[07:59:29 ryutaro:~/myruby]
$ time ruby youbin.rb

real 0m8.509s
user 0m7.348s
sys 0m0.520s

---------------------------------------------
open("KEN_ALL_RESULT", "w"){|f_out|
open("KEN_ALL.CSV"){|f_in|
while line = f_in.gets
str = ""
a = line.split(/,/).values_at(2,6..8).collect{|ele|
ele.gsub(/"/, "")}
str << a[0] << " " << a[1] << a[2] << a[3] << "\n"
f_out.print str
end
}
}
----------------------------------------------

落としてきたファイルは、改行コードはLF、エンコーディングは
UTF8にしてからプログラムにかけています。

Ryutaro Amano
wn9r-amn@xxxxx

投稿者 xml-rpc : 2007年12月28日 08:36
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/68122
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。