yarv-dev:637
From: Shiro Kawai <shiro lava.net>
Date: Sat, 01 Oct 2005 16:26:29 -1000 (HST)
Subject: [yarv-dev:637] Re: check interrupt timing
From: SASADA Koichi <ko1 atdot.net> Subject: [yarv-dev:629] check interrupt timing Date: Fri, 30 Sep 2005 20:41:18 +0900 > で、その監視のタイミングなのですが、rb_eval() (今の Ruby 評価機)では > node ごとにチェックしているが、チェックの間隔が短すぎるとオーバヘッドが > 大きくなるし、長すぎる(もしくはチェックしないタイミングが任意に引き伸ば > せる)とスレッドスケジューリングが オーバヘッドは (1) 現在のVMが時間を使いきったかどうかのフラグチェック (2) 待ちスレッドが無い状態でmutex_unlock/lockを行うこと の2つがあると思うのですが、(1)に関してはよっぽどVMの性能が良くない 限り問題にならないのではないかと思います。GaucheでもVM instruction 毎にシグナルとファイナライザのためにフラグをチェックしていますが これを省いて性能測定してみても差はほとんど出ませんでした。 なので、フラグチェックに関しては細粒度でやっていいんじゃないかと 思います。 (2)の方は多分深刻で、シングルスレッドアプリであるにもかかわらず タイムスライス毎にmutex_unlock/lockを呼ぶのは相当なオーバヘッドに なると思いますが、「待ちスレッドがあるかないか」だけをmutexの操作 無しでチェックできれば回避できるんじゃないでしょうか。 --shiro -- ML: yarv-dev quickml.atdot.net 使い方: http://www.atdot.net/~ko1/quickml
629 2005-09-30 20:41 [ko1 atdot.net ] check interrupt timing 630 2005-09-30 21:07 ┣[ko1 atdot.net ] -> 637 2005-10-02 11:26 ┗[shiro lava.net ] 639 2005-10-02 18:24 ┗[ko1 atdot.net ]