よたらぼ
自分の興味の赴くままにIT技術系のネタを取りとめもなくメモっています。
Ruby言語やLinuxのネタが多いです。

September 29, 2003

[Ruby] (続 x 2) 2つの文字列の先頭から等しい文字列を抜き出す

ささださん版。いやー、特に2つ目のがすばらしいですね。新しいオブジェクトを極力作らないようになっていますし、むとう版のように文字列をいちいち追加したりもしていないので高速ですし。ってかInteger#times思いつきませんでした....(-o-;)。and aに関してはたぶん今後も思いつかないハズ(^^;)。

というわけで、実際、簡単な性能テストをしてみました。

s = Time.now
(0...1000).each {
match_first("abc", "abcdef")
match_first("abcdefghijklmn", "abcdefghijklmnop")
match_first("a" * 50 + "b" * 50, "a" * 50 + "c" * 50)
match_first("abc", "abc")
match_first("abcd", "abce")
match_first("abc", "fabcd")
match_first("あいう", "あいうえ")
}
p Time.now - s

結果

むとう版:0.29867

ZnZさん版:0.782644

さかいさん版:0.947942

ささださん版1:0.248477

ささださん版2:0.199617

テストが適切かどうかというのはあまり自信がありませんが、少なくとも上記のテストではささださん版がダントツに速いです。

というわけでイタダキなのです。

もちろん、ZnZさん版、さかいさん版は性能を考慮しているわけではないということをお断りしておきます。

[Ruby-GNOME2] ZoneCheck

ZoneCheck is intended to help solving misconfigurations or inconsistencies usually revealed by an increase in the latency of the application, up to the output of unexpected/inconsistant results.

だそうです。オプションですがRuby/GTK2を使ったGUI frontendがサポートされています。

[Ruby] andの使い方

;の代わりですか。なるほどー。

お恥ずかしながら意識的にこのようなandの使い方をしたことなかったので勉強になりました(汗。

andやorは評価された結果の値が返るんですね。そーか。考えたこと無かったなぁ、てか、trueかfalseが返るかと思いこんでました(^^;)。<相変わらずダメなオレ。

irb(main):010:0> "hoge" and "fuga"
=> "fuga"
irb(main):011:0> 1 and "hoge"
=> "hoge"
irb(main):012:0> nil and "hoge"
=> nil
irb(main):013:0> false and "hoge"
=> false
  
irb(main):010:0> "hoge" or "fuga"
=> "hoge"
irb(main):031:0> 1 or "hoge"
=> 1
irb(main):032:0> nil or "hoge"
=> "hoge"
irb(main):033:0> false or "hoge"
=> "hoge"

[Ruby] (続 x 3) 2つの文字列の先頭から等しい文字列を抜き出す

; のほうが速いんじゃないとのことなので試す。おー、確かに微妙に速い。さらに;ではなく改行にして以下のようにするともちっとだけ速くなるみたい。

def match_first(a, b)
  a.size.times{|i|
    return(a[0,i]) if a[i] != b[i]
  }
  a
end

結果

1. ささださん案2:0.199225

2. andを;に変更:0.19624

3. 上記:0.192871

数回繰り返すと1の方が速くなったり2の方が速くなったりもするけど総じて3が速い感じ。微妙だけど。

あ、忘れてた。環境はruby 1.8.0 (2003-09-02) [i686-linux]だす。

本日のツッコミ(全4件) [ツッコミを入れる]

Before...

たむら [or/and は使わない言うてたくせに〜(http://www.rubyist.net/~tamura/d/?dat..]

むとぽん [なるほど。代入時に使うと確かにハマリそうですね。]

ささだ [たむらさんの日記で and の優先順位を覚えました!]


September 29, 2004

[Ruby-GNOME2] 最新のone-click ruby installerで落ちる

というレポートが。うーん、確かに。

Ruby自体をMinGW/MSYSのgccでコンパイルしたものと、Ruby-GNOME2 Win32版なら問題ないんだけど....。

VC++との関係で問題がある....とかいうことってあるのかなぁ。


September 29, 2006

[Misc] Googleマップ

新しいGoogleマップすごいなー、と思ってたんだけど、日本向けのローカライゼーションを相当がんばってくれたからなのね。なんだか感謝の気持ちなのです。


追記