[前][次][番号順一覧][スレッド一覧][生データ]

yarv-dev:157

From: shudo computer.org
Date: Sun, 29 Aug 2004 15:10:35 +0900
Subject: [yarv-dev:157] Re: inline cache with VM version

ささださん、前田さん、皆様、首藤です。

> >>  本当はVM用定数にしたいんだけど,そうするとずいぶんとポインタを
> >> たぐる手間が増えるので(thread -> vm -> counter),グローバル変数
> >> にします.あー,あとで後悔するかなぁ.
>
> > 良く分かってないですが、VMのメインループの中では局所変数にできないんで
> > しょうか。(あれ、メインループはなくって call threading にしたんだっけ?)
>
>  いえ,メインループです.,局所変数にするということは,カウ
> ンタのポインタを持っとくってイメージですかね.

グローバルなカウンタの他に、
VM メインループの局所変数としてローカルなカウンタも持って、
メソッドから抜ける際にローカルなカウンタの増分をグローバルなカウンタに
反映させるというのではマズいでしょうか。

こうすると、他のスレッドがクラスに何か変更を施した場合、
メソッドから return しない限りはその変更を見ることができない可能性があります。
一方、ゲインはというと、(ローカルな) カウンタは
レジスタに載りやすくなる、というくらいでしょうか。

メモリモデルというか consistency model は
Ruby としては何も規定してない (?) と思うので、
上記の挙動でも OK な気がしてます。

Kazuyuki Shudo/首藤一幸   私をたばねないで あらせいとうの花のように
  shudo computer.org   http://www.shudo.net/

--
ML: yarv-dev quickml.atdot.net
使い方: http://www.atdot.net/~ko1/quickml

[前][次][番号順一覧][スレッド一覧][生データ]

       153 2004-08-28 01:32 [ko1 atdot.net       ] inline cache with VM version            
       154 2004-08-28 06:31 ┗[maeda-yarv atusi.org]                                       
       155 2004-08-29 02:57  ┗[ko1 atdot.net       ]                                     
->     157 2004-08-29 15:10   ┗[shudo computer.org  ]                                   
       160 2004-08-29 17:44    ┗[ko1 atdot.net       ]                                 
       162 2004-08-29 18:22     ┗[shudo computer.org  ]                               
       163 2004-08-29 18:27      ┗[ko1 atdot.net       ]