[openrtm-users 02433] Re: RTCの処理測定について

Yawata Naofumi hatch @ ubi.cs.ritsumei.ac.jp
2012年 2月 9日 (木) 01:36:03 JST


安藤さん

お早い返信ありがとうございます。
また、返信が夜遅くになりまして、申し訳ございません。

>八幡さんがやりたい事というのは、operationのリクエストの到達から実際に
>operationがdispatchされるまでの時刻を計測したいということでよろしいでしょうか?

はい、そのとおりです。

お教えいただいた

      omniInterceptors::serverReceiveRequest_T::info_T info(*this);

については、まだどのような動作をするのか分からないので調べて
利用してみようと思います。


ご質問なのですが、GIOP_S.ccのファイルが
OpenRTM-aist-1.1.o-RC3_vc9.msiを用いてインストールを行ったところ、
OpenRTM-aist\1.1\omniORB\4.1.4\内に存在しなかったのですが、
利用するには、GIOP_S.ccのファイルを入れればいいのでしょうか?

また、omniORB\4.1.5だとGIOP_S.cppファイルが確認できました。

>ただ、ちょっと気になってomniORBのコード(GIOP_S.cc)を眺めていたら、
>omniInterceptors::serverReceiveRequest_T の呼び出しが、
>アンマーシャルのあとに行われているので、このインターセプタで
>時刻を計測すると、アンマーシャル後の
>・オブジェクトテーブル検索の時間
>・スタブでの引数の展開と実オペレーション関数の呼び出し
>の時間だけを計測することになりそうです。
加えて上記については
    {
      omniInterceptors::serverReceiveRequest_T::info_T info(*this);
      omniInterceptorP::visit(info);
    }
をomniInterceptors::serverReceiveRequest_Tと入れ替えると、
上手く動作しなくなるのでしょうか?


知識足らずな質問で申し訳ございません。

宜しくお願いいたします。


(2012/02/09 0:39), Ando Noriaki wrote:
> 八幡さん
>
> 産総研 安藤です
>
> 一番いいのは、著者の方がこのMLにいらして答えてくださることだと思いますが、
> 私の分かる範囲でお答えします。
>
> #論文を読む限りはRTMというよりはCORBA全般に関わる
> #事のようにも見えます。GIOPパケットに優先度情報を含めて、
> #優先度を考慮したディスパッチを行うことで性能向上を狙うという内容ですかね?
> #リアルタイムネットワークが使える環境でしたら面白いですね。
>
> 八幡さんがやりたい事というのは、operationのリクエストの到達から実際に
> operationがdispatchされるまでの時刻を計測したいということでよろしいでしょうか?
>
> CORBAにはPotableInterceptorという仕組みがあって、CORBAの動作の
> 様々な部分にInterceptorを仕掛けて、挙動を変えたりすることができます。
>
> ただし、もしomniORBをお使いでしたら、CORBA標準のPortableInterceptor
> は確か実装されておらず、omniInterceptorという独自のものが利用できると記憶しています。
>
> で、コレを使うと、operationのrequestをフックすることができるので、ここで時刻を測り
> あとは、呼ばれたoperationで時刻を測ればやりたい事ができるように思います。
>
> ただ、ちょっと気になってomniORBのコード(GIOP_S.cc)を眺めていたら、
> omniInterceptors::serverReceiveRequest_T の呼び出しが、
> アンマーシャルのあとに行われているので、このインターセプタで
> 時刻を計測すると、アンマーシャル後の
> ・オブジェクトテーブル検索の時間
> ・スタブでの引数の展開と実オペレーション関数の呼び出し
> の時間だけを計測することになりそうです。
>
>
> GIOP_S::handleRequest() {
>
>   try {
>
>     impl()->unmarshalRequestHeader(this);
>
>     pd_state = RequestIsBeingProcessed;
>
>     {
>       omniInterceptors::serverReceiveRequest_T::info_T info(*this);
>       omniInterceptorP::visit(info);
>     }
>
>     // Create a callHandle object
>     omniCallHandle call_handle(this, pd_worker->selfThread());
>
>     // Can we find the object in the local object table?
>     if (keysize() < 0)
>       OMNIORB_THROW(OBJECT_NOT_EXIST,OBJECT_NOT_EXIST_NoMatch,
>                     CORBA::COMPLETED_NO);
>
>     CORBA::ULong hash = omni::hash(key(), keysize());
>
>     omni::internalLock->lock();
>     omniLocalIdentity* id;
>     id = omniObjTable::locateActive(key(), keysize(), hash, 1);
>
>     if( id ) {
>       id->dispatch(call_handle);
>       return 1;
>     }
>
> なので、omniinterceptorではご希望のことはできないかもしれませんね。
> もし、研究としてこうしたCORBAの様々な処理の正確な時間を計測したいのでしたら、
> ソースの中身をよく吟味して、CORBAのソースの希望の場所に時刻計測関数を
> 埋め込んで地道に測るのが良いのではないでしょうか。
>
>
>
> 2012年2月8日23:43 Yawata Naofumi <hatch @ ubi.cs.ritsumei.ac.jp>:
>> 夜分遅くに失礼致します。
>>
>> 立命館大学の八幡と申します。
>>
>> RTMについてお聞きしたいことがあり、メールさせていただきました。
>>
>> RT ミドルウェアのリアルタイム拡張の論文に記載されている
>> 評価についてなのですが、同じくアンマーシャリング処理から、
>> RTC→アンマーシャリング処理までの処理時間を測定したい
>> のですが、調べても測定する方法が分かりませんでした。
>>
>> そのため、測定の方法を教えていただきたく、メールさせてい
>> ただきました。
>>
>> ※図に示すと赤枠の中の時間測定を行いたいと考えてます。
>>
>>
>> もし、Linux環境で無いと無理なようでしたら、VMwareを用いて
>> 行いたいと思いますのでお願いします。
>>
>> お忙しいところ申し訳ございませんが、よろしくお願いいたします。
>>
>> -利用環境-
>> OS:windows 7 HOME premium
>> RTM:OpenRTM-aist 1.1 RC3 C++
>> eclipse:Version: 3.4.2
>>
>> --
>> ┏━━━━━━━━━━━━━━━━━━━━━━━
>>>> ┃ 立命館大学 情報理工学部 情報システム学科
>> ┃ ユビキタス環境研究室 B4
>> ┃ Name :八幡 尚文(Yawata Naofumi)
>> ┃ Mail :hatch @ ubi.cs.ritsumei.ac.jp
>>>> ┗━━━━━━━━━━━━━━━━━━━━━━━
>>
>>
>> _______________________________________________
>> openrtm-users mailing list
>> openrtm-users @ openrtm.org
>> http://www.openrtm.org/mailman/listinfo/openrtm-users
>>
> _______________________________________________
> openrtm-users mailing list
> openrtm-users @ openrtm.org
> http://www.openrtm.org/mailman/listinfo/openrtm-users


-- 
┏━━━━━━━━━━━━━━━━━━━━━━━
┃
┃ 立命館大学 情報理工学部 情報システム学科
┃ ユビキタス環境研究室 B4
┃ Name :八幡 尚文(Yawata Naofumi)
┃ Mail :hatch @ ubi.cs.ritsumei.ac.jp
┃
┗━━━━━━━━━━━━━━━━━━━━━━━



openrtm-users メーリングリストの案内