1,length > 0和blank?和emtpy?
2,eval和__send
养成良好的小习惯吧,如果在大数组里出现这些代码,速度还是有一点点的影响的。
>> Benchmark.bm do |x|
?> x.report{10000.times{[].blank?}}
>> x.report{10000.times{[].empty?}}
>> x.report{10000.times{[].length > 0}}
>> end
user system total real
0.010000 0.000000 0.010000 ( 0.006934)
0.010000 0.000000 0.010000 ( 0.008550)
0.010000 0.000000 0.010000 ( 0.009955)
=> true
2,eval和__send
>> Benchmark.bm do |x|
?> x.report{10000.times{1+2}}
>> x.report{10000.times{1.__send__(:+,2)}}
>> x.report{10000.times{eval("1+2")}}
>> end
user system total real
0.010000 0.000000 0.010000 ( 0.011300)
0.000000 0.000000 0.000000 ( 0.013654)
0.020000 0.000000 0.020000 ( 0.014717)
=> true
养成良好的小习惯吧,如果在大数组里出现这些代码,速度还是有一点点的影响的。