[openrtm-users 01348] Re: high CPU load when deactivate python component
Yosuke Matsusaka
yosuke.matsusaka @ aist.go.jp
2010年 7月 6日 (火) 17:44:54 JST
栗原さん
松坂です。
2010/7/6 kurihara shinji <shinji.kurihara @ aist.go.jp>:
> RTMでは、一つのExecutionContextで複数のRTCを駆動する事が可能となっております。
> 仮に、非アクティブ状態でループを回さないようにした場合、一つのECに複数のRTC
> が関連付けられてる状況において、一つの RTC が非アクティブ状態の時に、他のアク
> ティブ状態のRTCまでも駆動関数(on_execute)が実行されないといった事になってしまい
> ます。
>
> 上記のような理由もあり、ExecutionContextのループは、RTCの状態に関わらずループ
> する仕様となっております。
なるほど、理解しました。
金広さん、清水さんの議論を読んで、何となく私の理解がずれている予感がしていたのですが、
これでクリアになりました。
・ExecutionContextは直列リストの構造をしている。
・ただし、あくまで分散コンポーネントモデルなので中央でコンテキストを管理している
サービスがあるわけではなく、各コンポーネント同士がバケツリレーのような形で
実行タイミングを通知しあっている。
というわけですね。
改良しようとしてもなかなか難しいところですね、、、。
--
Yosuke Matsusaka, Ph.D <yosuke.matsusaka @ aist.go.jp>
Interaction Modeling Group /
National Institute of Advanced Industrial Science and Technology (AIST)
Tel: 029-862-6726 Web: http://staff.aist.go.jp/yosuke.matsusaka/
openrtm-users メーリングリストの案内