[#34011] Should --verbose be equal to -v ? — Yugui <yugui@...>

Yuguiです。

15 messages 2008/03/10
[#34012] Re: Should --verbose be equal to -v ? — Yukihiro Matsumoto <matz@...> 2008/03/10

まつもと ゆきひろです

[#34105] rational.rb, complex.rb and mathn.rb — Tadayoshi Funaba <tadf@...>

rational と complex が組み込みになったことで、lib/mathn.rb の意義は薄

29 messages 2008/03/22
[#34106] Re: rational.rb, complex.rb and mathn.rb — Tadayoshi Funaba <tadf@...> 2008/03/22

現時点で rational.rb と complex.rb を残しているのは、それが無難だから

[#34107] Re: rational.rb, complex.rb and mathn.rb — Tadayoshi Funaba <tadf@...> 2008/03/22

で、かなり選択肢を絞った叩き台です。

[#34120] Re: rational.rb, complex.rb and mathn.rb — keiju@... (石塚圭樹) 2008/03/24

けいじゅ@いしつかです.

[#34125] Re: rational.rb, complex.rb and mathn.rb — Shin-ichiro HARA <sinara@...> 2008/03/25

原です。

[#34130] Re: rational.rb, complex.rb and mathn.rb — Tadayoshi Funaba <tadf@...> 2008/03/25

> 私も Complex の組み込みは Rational とは比較にならないくらい、仕様が決め

[#34158] Complex組み込み — Masahiro TANAKA <masa16.tanaka@...>

Complexが組み込みになるそうですが、これはcomplex.rbを踏襲して、

49 messages 2008/03/27
[#34161] Re: Complex組み込み — Shin-ichiro HARA <sinara@...> 2008/03/28

原です。

[#34168] Re: Complex組み込み — Tadayoshi Funaba <tadf@...> 2008/03/28

> 今までの Complex は、complex.rb にほぼ残して、たとえば Rational 成分

[#34186] Re: Complex組み込み — Shin-ichiro HARA <sinara@...> 2008/03/31

原です。

[#34187] Re: Complex組み込み — Tadayoshi Funaba <tadf@...> 2008/03/31

> そうです。Complex が難しい、という話を書いておくと、

[#34193] Re: Complex組み込み — Yukihiro Matsumoto <matz@...> 2008/03/31

まつもと ゆきひろです

[#34203] Re: Complex組み込み — Tadayoshi Funaba <tadf@...> 2008/04/01

> |僕としては、/ 演算子の振舞いについて前向きに検討してほしいです。

[#34215] Re: Complex組み込み — Yukihiro Matsumoto <matz@...> 2008/04/02

まつもと ゆきひろです

[#34166] Re: Complex組み込み — Tadayoshi Funaba <tadf@...> 2008/03/28

> となるようですが、別の実装として、

[ruby-dev:34144] [質問2点] C からの定数参照 & thread switching コストの低減

From: Hidetoshi NAGAI <nagai@...>
Date: 2008-03-26 10:29:43 UTC
List: ruby-dev #34144
永井@知能.九工大です.

すみませんが,2点質問させてください.

まず1点目です.

---[質問1]-----------------------------------------------------
C 言語で書かれた関数に "::AAA::BBB::CCC" という形で
定数/クラス/モジュールのパス文字列が渡された時,
対象となるオブジェクトを得るための低コストな実装は
どのように書くべきでしょうか.

ただし,対象となるオブジェクトはこの検索の際に 
autoload で読み込まれる可能性があるため,
autoload の機構はきちんと働く必要があります.
また,定数が存在しないなどの例外も捕捉せねばなりません.

単純な方法なら,rb_eval_string_protect(str, &state) かなとは
思うのですが...
----------------------------------------------------------------

次に2点目です.

---[質問2]-----------------------------------------------------
thread A から thread B に処理を依頼し,その結果を thread A で
受け取りたいという場合についてです.

thread B は複数の thread からの依頼を受け付けるため,
thread A からの依頼を処理した後は速やかに別の依頼を
処理する必要があります.
また,thread B には local に処理すべき仕事 
(アプリケーション全体で見ても比較的優先順位が高い) もあります.

このような場合の実行コストをうまく低減して,
アプリケーション全体の速度低下を抑えるための
うまい方法はないでしょうか.

thread 切り替えの頻度を下げると,
処理依頼に対する待ち時間が増加して低速化します.
かといって,頻度を上げると thread 切り替えのコストが大きくて
遅くなってしまいます.

thread B には優先順位が高めの local の仕事はありますが,
処理のない「暇」な時間も頻繁に発生します.
しかしその度に他の thread に処理を譲ってしまうと,
優先順位が高めの local の仕事への応答性が低下し,
アプリケーション全体の動作が鈍くなってしまいます.
なお,local の仕事が発生したかどうかを
外部からモニターすることはできません.

Ruby が Giant Lock での thread 切り替え動作である以上は,
こうした速度低下は避けようがないことなのでしょうか.
----------------------------------------------------------------

この2点目は,ご想像の通り,Ruby/Tk の eventloop の処理の話です.
あるスクリプトの実行環境を包み込むために
thread でくるんで実行するようにした場合,
eventloop の thread との間に激しいメッセージの応酬が行われて
目に見えて処理速度が低下してしまいます.

GUI の構築の際には,依頼→戻値受け取り→戻値に基づいての依頼
というのが頻繁に行われるために顕著に遅くなります.
GUI の構築が完了してしまえば,通常はスクリプト側からの
処理依頼は激減するので,速度低下はほぼ問題にならないようです.

現在の eventloop では,連続処理数 (処理がない時には多く増加させる) と
タイマーとの組合わせで,切り替えのタイミングを
スクリプトからある程度コントロールできるようにはしていますが,
どのような値にすべきかの根拠があるわけでもなく,
場当たり的な対応に過ぎないことが気になっています.

ですので,「そうした場合はこうすべき」というのがあれば
ぜひ教えを請いたいと思っています.
よろしくお願いします.
-- 
                                       永井 秀利 (九工大 知能情報)
                                           nagai@ai.kyutech.ac.jp

In This Thread

Prev Next