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