$ time ruby -e'a=(1..200000).to_a; a.classx' -e:1: undefined method `classx' for #<Array:0x4027c18c> (NoMethodError) real 0m3.768s user 0m1.640s sys 0m0.010s $ time ruby -e'a=(1..200000).to_a; b=nil; b.classx' -e:1: undefined method `classx' for nil:NilClass (NoMethodError) real 0m0.288s user 0m0.140s sys 0m0.010s $ time ruby -e'a=(1..400000).to_a; a.classx' -e:1: undefined method `classx' for #<Array:0x4027c18c> (NoMethodError) real 0m9.448s user 0m3.980s sys 0m0.050s $ time ruby -e'a=(1..400000).to_a; b=[]; b.classx' -e:1: undefined method `classx' for []:Array (NoMethodError) real 0m0.550s user 0m0.260s sys 0m0.020s $ time ruby -e'a=(1..1000000).to_a; a.classx' -e:1: undefined method `classx' for #<Array:0x4027c18c> (NoMethodError) real 0m36.652s user 0m16.040s sys 0m0.090s $ time ruby -e'a=(1..1000000).to_a; b=1; b.classx' -e:1: undefined method `classx' for 1:Fixnum (NoMethodError) real 0m1.593s user 0m0.690s sys 0m0.010s Why does it take longer and longer for Ruby to throw NoMethodError for large arrays? What is going on here? This happens with hash too. -- dave