From: SASADA Koichi <ko1@...>
Date: 2009-02-26T03:43:31+09:00
Subject: [ruby-dev:38081] Re: [Feature:trunk] nested loop construct

 ささだです.

Yukihiro Matsumoto wrote::
> 最近、AO Benchを見ています。http://lucille.atso-net.jp/aobench/
> 実行時間の1/3はGCが消費していて涙目。

 そこで,Flonum 最適化を....

 あと,インスタンス変数のキャッシュを用いた最適化してねーじゃん,と最近
指摘されたので,近日中にやろうと思います.

> それはそれとして、AO Benchの中には
> 
>     nphi.times do |j|
>       ntheta.times do |i|
> 
> のような多重ループがあります。これを
> 
>   nloop(nphi, ntheta) do |j,i|
> 
> というように書けたら、よりわかりやすく、かつ、やや高速なので
> はないかと考えました。実際に実装したところ、AO Benchでは5%程
> 度実行時間が短縮されるようです。

 こういうパターンが多くあるのなら,いいんでないでしょうか.でも,速度の
ために,ってのはあんまり Ruby 的じゃないような気がします(とか俺が言う
なって感じですか).

>   * そもそも必要なのか。YARVではややブロック呼び出しが重い傾
>     向があるので効果があったが、よりブロック呼び出しが軽量に
>     なれば不要ではないか

 もうちょっと軽くなるようにしたいと思うんですがねぇ.あと,こういうのは
C で書くよりも Ruby で書いた方が速いかも.


# あと,[ruby-dev:38058] に返事下さい.

-- 
// SASADA Koichi at atdot dot net