Rubyについて Part 10
■ このスレッドは過去ログ倉庫に格納されています
0441デフォルトの名無しさん
NGNG(前略)
rb_define_method(rb_mKernel, "==", rb_obj_equal, 1);
(中略)
rb_define_method(rb_cSymbol, "===", rb_obj_equal, 1);
(後略)
Symbol#=== は定義されてるけど、
Symbol#== は定義されてない(ので Object#== が呼ばれる)。
一段噛ませてある分、==の方がほんの少し遅い?
メソッド探索はキャッシュされるんだっけ?
それなら速度差は最初の1回だけなんだろうけど。
$ ruby -v
ruby 1.8.1 (2003-12-25) [i686-linux]
$ time ruby -e '10_000_000.times{:foo===:foo}'
real: 7.39s(user: 7.39s, system: 0.00s)
$ time ruby -e '10_000_000.times{:foo==:foo}'
real: 7.40s(user: 7.40s, system: 0.00s)
有意な差は無さそうだ。
■ このスレッドは過去ログ倉庫に格納されています