[#44310] プログラムに対して意図したとおりの文字列を渡す方法 — "Information Kanasansoft" <kanasansoft@...>

kanasanです。

9 messages 2007/12/05

[#44332] クラス:相互参照系の作成方法について質問です — "Saburoh Sakai" <sabroh@...>

はじめまして、さかいと申します。

12 messages 2007/12/11

[#44366] Rake改善プロジェクト — "Hajime Hoshi" <hajimehoshi@...>

東京大学修士 1 年の星一と申します。

14 messages 2007/12/19

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

From: Ryutaro Amano <wn9r-amn@...>
Date: 2007-12-27 23:36:12 UTC
List: ruby-list #44412
こんにちは、天野竜太郎です。

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@asahi-net.or.jp



In This Thread

Prev Next