[#139] ruby 0.97 available — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろ@トヨタケーラムです.
1 message
1996/02/13
[#145] Re: The black face. — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろ@トヨタケーラムです.
1 message
1996/02/14
[#182] Re: DOS port — Kazuhiko Iwama <iwama@...>
■ [ruby-list:178] Re: DOS port
1 message
1996/02/20
[#184] Re: DOS port — Kazuhiko Iwama <iwama@...>
■ [ruby-list:181] Re: DOS port
1 message
1996/02/20
[#185] Re: DOS port — Kazuhiko Iwama <iwama@...>
■ [ruby-list:183] Re: DOS port
1 message
1996/02/20
[#196] Re: DOS port — Kazuhiko Iwama <iwama@...>
■ [ruby-list:183] Re: DOS port
1 message
1996/02/26
[#198] Re: DOS port — Kazuhiko Iwama <iwama@...>
■ [ruby-list:197] Re: DOS port
1 message
1996/02/26
[#201] Re: ruby for JPower — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろ@トヨタケーラムです.
1 message
1996/02/26
[ruby-list:117] Re: while vs WHILE
From:
matz@... (Yukihiro Matsumoto)
Date:
1996-02-02 04:29:01 UTC
List:
ruby-list #117
まつもと ゆきひろ@トヨタケーラムです.
In message "[ruby-list:116] while vs WHILE"
on 96/02/02, P nakawtse <nakawtse@syrinx.dq.isl.ntt.jp> writes:
|中渡@NTTです.
| これだけ見ると,どう見てもイテレータの方がコストが
| 大きいんですけど.もっと低レベルでは同じくらいの命令を
| こなしてるのでしょうか?
そういうことなんでしょうね.私もイテレータの方が遅いと思って
いましたから.
# マシンによってここまで変わる理由はまだ分かりません.多分,
# 関数呼出のコストがCISCでは大きいせいではないかと.
|# i+=1 -> i++ で変わるとか(^^)
多分,この辺が効いていると思います(rubyにi++はありませんけど).
つまり,whileの方は「i<10000」,「i+=1」の評価をrubyのレベル
で行わなければならないが,イテレータの方はC言語のレベルで実
行できるという違いが大きいのでしょう.事実,昨日の間違いはルー
プの中身が空でなかったせいですし.たとえば,
time ruby -e '0.upto(10000){i+=1}'
1.4 real 0.6 user 0.7 sys
のような感じになります.2倍程度遅いというのはこの数字を見た
せいです.
| 時間の測定精度はどのくらい信用できるのでしょうか?
| もっと精密なのもありましたよね..
精度はあまり高くないと思います.目安程度に考えてください.い
ちおう複数回実行して一番成績の良いものを選んでいますけど,せ
いぜい0.1sec程度の精度しかないと思います.
まあ,速度のオーダーが分かれば良いので,これ以上精密に測って
もむくわれない気がします.
|適切なメソッドが無くてイテレータ以外ではトラバースでき
|ない可能性だってあります.
|----
| whileループでダメな場合があるわけですね.
そうです.むしろこっちを重視したいです.イテレータの本来の目
的ですから.
まつもと ゆきひろ /:|)