きむらさん,るびきちさん,

ご回答ありがとうございます.

Array#all は試していませんでした.わたしのチェック不足.また,Array#any? や
Array#none? はそもそも知りませんでした.これも勉強不足.残念ながら,
私の用途の場合,空を nil では表現していないため,この方法は別の機会に
試してみたいと思います.

それから,benchmark というライブラリも始めて知りました.便利ですね.
これから使いたいと思います.こういうものを知らなかったので,詳細な
プロファイリングってどうすればよいのかも知りませんでした.失礼.

> RUBY_VERSION                    # => "1.8.8"
> # >>                 user     system      total        real
> # >> empty_ary   0.000000   0.000000   0.000000 (  0.001170)
> # >> uniq        0.030000   0.000000   0.030000 (  0.037613)
> # >> each        0.000000   0.000000   0.000000 (  0.008068)
> # >> all         0.010000   0.000000   0.010000 (  0.011180)
> # >>                 user     system      total        real
> # >> empty_ary   0.030000   0.000000   0.030000 (  0.023194)
> # >> uniq        0.020000   0.000000   0.020000 (  0.039152)
> # >> each        0.130000   0.000000   0.130000 (  0.154927)
> # >> all         0.110000   0.000000   0.110000 (  0.139925)
>
>
> RUBY_VERSION                    # => "1.9.2"
> # >>                 user     system      total        real
> # >> empty_ary   0.000000   0.000000   0.000000 (  0.001076)
> # >> uniq        0.020000   0.000000   0.020000 (  0.027756)
> # >> each        0.010000   0.000000   0.010000 (  0.002645)
> # >> all         0.000000   0.000000   0.000000 (  0.008598)
> # >>                 user     system      total        real
> # >> empty_ary   0.010000   0.000000   0.010000 (  0.019093)
> # >> uniq        0.040000   0.000000   0.040000 (  0.030770)
> # >> each        0.040000   0.000000   0.040000 (  0.049135)
> # >> all         0.060000   0.000000   0.060000 (  0.079198)

さて,結果は大変興味深いものでした.内容によって結果が異なるのは
ある程度想像できるものの,メソッドによる差は意外なものでした.

ermpty_ary が安定して速いのは想像通りですが,uniq と each が,配列の
中身によって逆転するところが大変微妙.each の場合,空でない要素に
出会うとループを脱出するので,有利ではないかと思っていたのですが,
uniq に負けることがあるというのが大変興味深いです.配列の要素が
全て空だと uniq はかなり速い.Hash の生成効率が高いのでしょうか?

いずれにせよ,大変ありがとうございました.勉強になりました.

-- 
俊(とし)
* 望湖庵日記 http://griffin.cocolog-nifty.com/lakesidedairy/