エラーメッセージ

  • Warning: file_put_contents(temporary://filerflKzW): failed to open stream: "DrupalTemporaryStreamWrapper::stream_open" call failed file_unmanaged_save_data() (/var/www/html/openrtm/includes/file.inc ファイル 2024行).
  • ファイルを作成できませんでした。
  • Warning: file_put_contents(temporary://fileiHS1IY): failed to open stream: "DrupalTemporaryStreamWrapper::stream_open" call failed file_unmanaged_save_data() (/var/www/html/openrtm/includes/file.inc ファイル 2024行).
  • ファイルを作成できませんでした。

[openrtm-users 02430] RTCの処理測定について

11 個の投稿 / 0 new
最終投稿
Yawata Naofumi
オフライン
Last seen: なし 前
登録日: 2012-01-27 16:20
[openrtm-users 02430] RTCの処理測定について

夜分遅くに失礼致します。

立命館大学の八幡と申します。

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

┗━━━━━━━━━━━━━━━━━━━━━━━

未定義
root
オフライン
Last seen: 6日 11時間 前
登録日: 2009-06-23 14:31
[openrtm-users 02431] RTCの処理測定について

八幡さん

産総研 安藤です

一番いいのは、著者の方がこの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 :
>
> 夜分遅くに失礼致します。
>
> 立命館大学の八幡と申します。
>
> 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

Yawata Naofumi
オフライン
Last seen: なし 前
登録日: 2012-01-27 16:20
[openrtm-users 02433] RTCの処理測定について

安藤さん

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

>八幡さんがやりたい事というのは、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 :
>> 夜分遅くに失礼致します。
>>
>> 立命館大学の八幡と申します。
>>
>> 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

root
オフライン
Last seen: 6日 11時間 前
登録日: 2009-06-23 14:31
[openrtm-users 02434] RTCの処理測定について

安藤です

> 安藤さん
>
> お早い返信ありがとうございます。
> また、返信が夜遅くになりまして、申し訳ございません。
>
>>八幡さんがやりたい事というのは、operationのリクエストの到達から実際に
>>operationがdispatchされるまでの時刻を計測したいということでよろしいでしょうか?
>
> はい、そのとおりです。
>
> お教えいただいた
>
> omniInterceptors::serverReceiveRequest_T::info_T info(*this);
>
> については、まだどのような動作をするのか分からないので調べて
> 利用してみようと思います。

omniinterceptorについてはこちらに書いてあります
http://omniorb.sourceforge.net/omni40/omniORB/omniORB010.html

> ご質問なのですが、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ファイルが確認できました。

OpenRTMの配布パッケージにはomniORBのバイナリとヘッダしか
含まれていません。(ソースは必要ありませんので。)

また、もしomniORBのソースを書き換えて時間を計測したいのでしたら、
omniORBを再コンパイルする日通用がありますよ。

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

これは、八幡さんがやりたい事に依存します。
どこからどこまでの時間を測りたいかによってomniinterceptorが
使える場合と使えない場合がある、という意味です。

示していただいた論文では、オペレーションリクエスト開始、アンマーシャル、ディスパッチ
までの時間を図っていたようですが、intercctptorの場所を見るかぎり、
アンマーシャルの後に、serverreceiveRequestのinterceptor呼び出しがあるので、
アンマーシャルを含めた時間が測れないのではないかと推測します。

impl()->unmarshalRequestHeader(this); // アンマーシャル

omniInterceptors::serverReceiveRequest_T::info_T info(*this);
omniInterceptorP::visit(info); // interceptor呼び出し

上記のWebページにも以下のように書かれているので、たぶんこの
推測も正しいかと思います。
(行われているのはリクエストヘッダのアンマーシャルだけのようですが。。。)

serverReceiveRequest
Called when the server receives a request, just after unmarshalling
the request header. See the getCodeSetServiceContext() function in
src/lib/omniORB/orbcore/cdrStream.cc for an example.

> 宜しくお願いいたします。
>
>
> (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 :
>>> 夜分遅くに失礼致します。
>>>
>>> 立命館大学の八幡と申します。
>>>
>>> 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 mailing list
> openrtm-users@openrtm.org
> http://www.openrtm.org/mailman/listinfo/openrtm-users

Yawata Naofumi
オフライン
Last seen: なし 前
登録日: 2012-01-27 16:20
[openrtm-users 02435] RTCの処理測定について

安藤様。

八幡です。
お早い対応をしていただいたのに、
メールの返事遅れまして申し訳ありません。

omniORBのビルドを行いたかったので一度OpenRTM-aistを
ソースコードからビルドできるかを確認していました。

ビルドに関しては
ちら
のページを参考に行ったのですが、
C:/distribution/omniORM-4.1.4/bin/ 内のファイルは変更されず
omniORBに関わる部分がビルドされているのかわかりませんでした。

加えて、上記のページのバッチファイルを用いて行うとOpenRTM-aist
全体のビルドを行なっていましたが、

./installer/autowix.cmd line:84〜99

if "x%OMNI_ROOT%" == "x" (
   echo Environment Variable "OMNI_EOOR" is not set. Abort.
   goto END
)
set INCLUDE_OMNIORB=YES

if not exist omniORB_inc.wxs (
   cd omniORB
   set TMP_PYTHONPATH=%PYTHONPATH%
   set PYTHONPATH=../../bin;%PYTHONPATH%
   echo Generating omniORB_inc.wxs......
   omniwxs.py
   set PYTHONPATH=%TMP_PYTHONPATH%
   copy omniORB_inc.wxs ..
   cd ..
)

以外をコメントアウトすることでomniORBのみビルドを行えるのでしょうか?

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

また、上記についてなのですが、もう少し詳しくお伺いさせていただきたいのですが、
あるクライアントが別PC上のサーバを呼び出す際のomniORBの動作は"GIOPパケット受信
からディスパッチ"と"ディスパッチの終わりからGIOPパケットの送信"ということで
よろしいのでしょうか?

もしそうなのであればインターセプタは

  • clientSendRequest
  • clientReceiveReply
  • serverReceiveRequest
  • serverSendReply

の4つであり、これらを利用するにはサーバコード内で

omniInterceptors* interceptors = omniORB::getInterceptors();
interceptors->clientSendRequest.add(myInterceptorFunc); //myInterceptorFuncは呼び出したい関数名

を記述すればいいということでしょうか?
知識足らずで質問が多くなってしまい申し訳ございません。
宜しくお願いいたします。

(2012/02/09 11:57), Ando Noriaki wrote:

安藤です

安藤さん

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

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

はい、そのとおりです。

お教えいただいた

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

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

omniinterceptorについてはこちらに書いてあります
http://omniorb.sourceforge.net/omni40/omniORB/omniORB010.html

ご質問なのですが、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ファイルが確認できました。

OpenRTMの配布パッケージにはomniORBのバイナリとヘッダしか
含まれていません。(ソースは必要ありませんので。)

また、もしomniORBのソースを書き換えて時間を計測したいのでしたら、
omniORBを再コンパイルする日通用がありますよ。

ただ、ちょっと気になってomniORBのコード(GIOP_S.cc)を眺めていたら、
omniInterceptors::serverReceiveRequest_T の呼び出しが、
アンマーシャルのあとに行われているので、このインターセプタで
時刻を計測すると、アンマーシャル後の
・オブジェクトテーブル検索の時間
・スタブでの引数の展開と実オペレーション関数の呼び出し
の時間だけを計測することになりそうです。

加えて上記については
{
omniInterceptors::serverReceiveRequest_T::info_T info(*this);
omniInterceptorP::visit(info);
}
をomniInterceptors::serverReceiveRequest_Tと入れ替えると、
上手く動作しなくなるのでしょうか?

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

これは、八幡さんがやりたい事に依存します。
どこからどこまでの時間を測りたいかによってomniinterceptorが
使える場合と使えない場合がある、という意味です。

示していただいた論文では、オペレーションリクエスト開始、アンマーシャル、ディスパッチ
までの時間を図っていたようですが、intercctptorの場所を見るかぎり、
アンマーシャルの後に、serverreceiveRequestのinterceptor呼び出しがあるので、
アンマーシャルを含めた時間が測れないのではないかと推測します。

impl()->unmarshalRequestHeader(this); // アンマーシャル

omniInterceptors::serverReceiveRequest_T::info_T info(*this);
omniInterceptorP::visit(info); // interceptor呼び出し

上記のWebページにも以下のように書かれているので、たぶんこの
推測も正しいかと思います。
(行われているのはリクエストヘッダのアンマーシャルだけのようですが。。。)

serverReceiveRequest
Called when the server receives a request, just after unmarshalling
the request header. See the getCodeSetServiceContext() function in
src/lib/omniORB/orbcore/cdrStream.cc for an example.

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

(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 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

┗━━━━━━━━━━━━━━━━━━━━━━━

root
オフライン
Last seen: 6日 11時間 前
登録日: 2009-06-23 14:31
[openrtm-users 02436] RTCの処理測定について

八幡さん

安藤です

openrtm.org のサイトで紹介しているOpenRTMのビルド方法のページでは、
omniORBの公式サイトで配布されているバイナリパッケージを使用しています。
したがって、omniORBをコンパイルしたい場合は別途ご自分でやって頂く必要があります。

2012年2月10日9:52 Yawata Naofumi :
> 安藤様。
>
> 八幡です。
> お早い対応をしていただいたのに、
> メールの返事遅れまして申し訳ありません。
>
> omniORBのビルドを行いたかったので一度OpenRTM-aistを
> ソースコードからビルドできるかを確認していました。
>
> ビルドに関してはこ ちらのページを参考に行ったのですが、
> C:/distribution/omniORM-4.1.4/bin/ 内のファイルは変更されず
> omniORBに関わる部分がビルドされているのかわかりませんでした。
>
> 加えて、上記のページのバッチファイルを用いて行うとOpenRTM-aist
> 全体のビルドを行なっていましたが、
>
> ./installer/autowix.cmd line:84〜99
>
> if "x%OMNI_ROOT%" == "x" (
> echo Environment Variable "OMNI_EOOR" is not set. Abort.
> goto END
> )
> set INCLUDE_OMNIORB=YES
>
> if not exist omniORB_inc.wxs (
> cd omniORB
> set TMP_PYTHONPATH=%PYTHONPATH%
> set PYTHONPATH=../../bin;%PYTHONPATH%
> echo Generating omniORB_inc.wxs......
> omniwxs.py
> set PYTHONPATH=%TMP_PYTHONPATH%
> copy omniORB_inc.wxs ..
> cd ..
> )
>
> 以外をコメントアウトすることでomniORBのみビルドを行えるのでしょうか?
>
> 八幡さんがやりたい事というのは、operationのリクエストの到達から実際に
> operationがdispatchされるまでの時刻を計測したいということでよろしいでしょうか?
>
> また、上記についてなのですが、もう少し詳しくお伺いさせていただきたいのですが、
> あるクライアントが別PC上のサーバを呼び出す際のomniORBの動作は"GIOPパケット受信
> からディスパッチ"と"ディスパッチの終わりからGIOPパケットの送信"ということで
> よろしいのでしょうか?
>
> もしそうなのであればインターセプタは
>
> clientSendRequest
> clientReceiveReply
> serverReceiveRequest
> serverSendReply
>
> の4つであり、これらを利用するにはサーバコード内で
>
> omniInterceptors* interceptors = omniORB::getInterceptors();
> interceptors->clientSendRequest.add(myInterceptorFunc);
> //myInterceptorFuncは呼び出したい関数名
>
> を記述すればいいということでしょうか?
>
> 知識足らずで質問が多くなってしまい申し訳ございません。
> 宜しくお願いいたします。
>
>
> (2012/02/09 11:57), Ando Noriaki wrote:
>
> 安藤です
>
> 安藤さん
>
> お早い返信ありがとうございます。
> また、返信が夜遅くになりまして、申し訳ございません。
>
> 八幡さんがやりたい事というのは、operationのリクエストの到達から実際に
> operationがdispatchされるまでの時刻を計測したいということでよろしいでしょうか?
>
> はい、そのとおりです。
>
> お教えいただいた
>
> omniInterceptors::serverReceiveRequest_T::info_T info(*this);
>
> については、まだどのような動作をするのか分からないので調べて
> 利用してみようと思います。
>
> omniinterceptorについてはこちらに書いてあります
> http://omniorb.sourceforge.net/omni40/omniORB/omniORB010.html
>
> ご質問なのですが、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ファイルが確認できました。
>
> OpenRTMの配布パッケージにはomniORBのバイナリとヘッダしか
> 含まれていません。(ソースは必要ありませんので。)
>
> また、もしomniORBのソースを書き換えて時間を計測したいのでしたら、
> omniORBを再コンパイルする日通用がありますよ。
>
> ただ、ちょっと気になってomniORBのコード(GIOP_S.cc)を眺めていたら、
> omniInterceptors::serverReceiveRequest_T の呼び出しが、
> アンマーシャルのあとに行われているので、このインターセプタで
> 時刻を計測すると、アンマーシャル後の
> ・オブジェクトテーブル検索の時間
> ・スタブでの引数の展開と実オペレーション関数の呼び出し
> の時間だけを計測することになりそうです。
>
> 加えて上記については
> {
> omniInterceptors::serverReceiveRequest_T::info_T info(*this);
> omniInterceptorP::visit(info);
> }
> をomniInterceptors::serverReceiveRequest_Tと入れ替えると、
> 上手く動作しなくなるのでしょうか?
>
> 知識足らずな質問で申し訳ございません。
>
> これは、八幡さんがやりたい事に依存します。
> どこからどこまでの時間を測りたいかによってomniinterceptorが
> 使える場合と使えない場合がある、という意味です。
>
> 示していただいた論文では、オペレーションリクエスト開始、アンマーシャル、ディスパッチ
> までの時間を図っていたようですが、intercctptorの場所を見るかぎり、
> アンマーシャルの後に、serverreceiveRequestのinterceptor呼び出しがあるので、
> アンマーシャルを含めた時間が測れないのではないかと推測します。
>
> impl()->unmarshalRequestHeader(this); // アンマーシャル
>
> omniInterceptors::serverReceiveRequest_T::info_T info(*this);
> omniInterceptorP::visit(info); // interceptor呼び出し
>
> 上記のWebページにも以下のように書かれているので、たぶんこの
> 推測も正しいかと思います。
> (行われているのはリクエストヘッダのアンマーシャルだけのようですが。。。)
>
> serverReceiveRequest
> Called when the server receives a request, just after unmarshalling
> the request header. See the getCodeSetServiceContext() function in
> src/lib/omniORB/orbcore/cdrStream.cc for an example.
>
>
>
> 宜しくお願いいたします。
>
>
> (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 :
>
> 夜分遅くに失礼致します。
>
> 立命館大学の八幡と申します。
>
> 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 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 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

Yawata Naofumi
オフライン
Last seen: なし 前
登録日: 2012-01-27 16:20
[openrtm-users 02437] RTCの処理測定について

安藤様。

ありがとうございます。
ビルド方法調べてやってみます。

(2012/02/10 10:03), Ando Noriaki wrote:
> 八幡さん
>
> 安藤です
>
> openrtm.org のサイトで紹介しているOpenRTMのビルド方法のページでは、
> omniORBの公式サイトで配布されているバイナリパッケージを使用しています。
> したがって、omniORBをコンパイルしたい場合は別途ご自分でやって頂く必要があります。
>
>
>
> 2012年2月10日9:52 Yawata Naofumi :
>> 安藤様。
>>
>> 八幡です。
>> お早い対応をしていただいたのに、
>> メールの返事遅れまして申し訳ありません。
>>
>> omniORBのビルドを行いたかったので一度OpenRTM-aistを
>> ソースコードからビルドできるかを確認していました。
>>
>> ビルドに関してはこ ちらのページを参考に行ったのですが、
>> C:/distribution/omniORM-4.1.4/bin/ 内のファイルは変更されず
>> omniORBに関わる部分がビルドされているのかわかりませんでした。
>>
>> 加えて、上記のページのバッチファイルを用いて行うとOpenRTM-aist
>> 全体のビルドを行なっていましたが、
>>
>> ./installer/autowix.cmd line:84〜99
>>
>> if "x%OMNI_ROOT%" == "x" (
>> echo Environment Variable "OMNI_EOOR" is not set. Abort.
>> goto END
>> )
>> set INCLUDE_OMNIORB=YES
>>
>> if not exist omniORB_inc.wxs (
>> cd omniORB
>> set TMP_PYTHONPATH=%PYTHONPATH%
>> set PYTHONPATH=../../bin;%PYTHONPATH%
>> echo Generating omniORB_inc.wxs......
>> omniwxs.py
>> set PYTHONPATH=%TMP_PYTHONPATH%
>> copy omniORB_inc.wxs ..
>> cd ..
>> )
>>
>> 以外をコメントアウトすることでomniORBのみビルドを行えるのでしょうか?
>>
>> 八幡さんがやりたい事というのは、operationのリクエストの到達から実際に
>> operationがdispatchされるまでの時刻を計測したいということでよろしいでしょうか?
>>
>> また、上記についてなのですが、もう少し詳しくお伺いさせていただきたいのですが、
>> あるクライアントが別PC上のサーバを呼び出す際のomniORBの動作は"GIOPパケット受信
>> からディスパッチ"と"ディスパッチの終わりからGIOPパケットの送信"ということで
>> よろしいのでしょうか?
>>
>> もしそうなのであればインターセプタは
>>
>> clientSendRequest
>> clientReceiveReply
>> serverReceiveRequest
>> serverSendReply
>>
>> の4つであり、これらを利用するにはサーバコード内で
>>
>> omniInterceptors* interceptors = omniORB::getInterceptors();
>> interceptors->clientSendRequest.add(myInterceptorFunc);
>> //myInterceptorFuncは呼び出したい関数名
>>
>> を記述すればいいということでしょうか?
>>
>> 知識足らずで質問が多くなってしまい申し訳ございません。
>> 宜しくお願いいたします。
>>
>>
>> (2012/02/09 11:57), Ando Noriaki wrote:
>>
>> 安藤です
>>
>> 安藤さん
>>
>> お早い返信ありがとうございます。
>> また、返信が夜遅くになりまして、申し訳ございません。
>>
>> 八幡さんがやりたい事というのは、operationのリクエストの到達から実際に
>> operationがdispatchされるまでの時刻を計測したいということでよろしいでしょうか?
>>
>> はい、そのとおりです。
>>
>> お教えいただいた
>>
>> omniInterceptors::serverReceiveRequest_T::info_T info(*this);
>>
>> については、まだどのような動作をするのか分からないので調べて
>> 利用してみようと思います。
>>
>> omniinterceptorについてはこちらに書いてあります
>> http://omniorb.sourceforge.net/omni40/omniORB/omniORB010.html
>>
>> ご質問なのですが、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ファイルが確認できました。
>>
>> OpenRTMの配布パッケージにはomniORBのバイナリとヘッダしか
>> 含まれていません。(ソースは必要ありませんので。)
>>
>> また、もしomniORBのソースを書き換えて時間を計測したいのでしたら、
>> omniORBを再コンパイルする日通用がありますよ。
>>
>> ただ、ちょっと気になってomniORBのコード(GIOP_S.cc)を眺めていたら、
>> omniInterceptors::serverReceiveRequest_T の呼び出しが、
>> アンマーシャルのあとに行われているので、このインターセプタで
>> 時刻を計測すると、アンマーシャル後の
>> ・オブジェクトテーブル検索の時間
>> ・スタブでの引数の展開と実オペレーション関数の呼び出し
>> の時間だけを計測することになりそうです。
>>
>> 加えて上記については
>> {
>> omniInterceptors::serverReceiveRequest_T::info_T info(*this);
>> omniInterceptorP::visit(info);
>> }
>> をomniInterceptors::serverReceiveRequest_Tと入れ替えると、
>> 上手く動作しなくなるのでしょうか?
>>
>> 知識足らずな質問で申し訳ございません。
>>
>> これは、八幡さんがやりたい事に依存します。
>> どこからどこまでの時間を測りたいかによってomniinterceptorが
>> 使える場合と使えない場合がある、という意味です。
>>
>> 示していただいた論文では、オペレーションリクエスト開始、アンマーシャル、ディスパッチ
>> までの時間を図っていたようですが、intercctptorの場所を見るかぎり、
>> アンマーシャルの後に、serverreceiveRequestのinterceptor呼び出しがあるので、
>> アンマーシャルを含めた時間が測れないのではないかと推測します。
>>
>> impl()->unmarshalRequestHeader(this); // アンマーシャル
>>
>> omniInterceptors::serverReceiveRequest_T::info_T info(*this);
>> omniInterceptorP::visit(info); // interceptor呼び出し
>>
>> 上記のWebページにも以下のように書かれているので、たぶんこの
>> 推測も正しいかと思います。
>> (行われているのはリクエストヘッダのアンマーシャルだけのようですが。。。)
>>
>> serverReceiveRequest
>> Called when the server receives a request, just after unmarshalling
>> the request header. See the getCodeSetServiceContext() function in
>> src/lib/omniORB/orbcore/cdrStream.cc for an example.
>>
>>
>>
>> 宜しくお願いいたします。
>>
>>
>> (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 :
>>
>> 夜分遅くに失礼致します。
>>
>> 立命館大学の八幡と申します。
>>
>> 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 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 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

root
オフライン
Last seen: 6日 11時間 前
登録日: 2009-06-23 14:31
[openrtm-users 02438] RTCの処理測定について

八幡さん

安藤です

Windowsで開発されているようですが、Linuxはお使いにならないですか?
Linuxであれば、omniORBのソースをダウンロードして configure; make 一発で
コンパイルできますよ。Windowsの方はCygwin使ったりと少し面倒だったと思います。

2012年2月10日10:34 Yawata Naofumi :
> 安藤様。
>
> ありがとうございます。
> ビルド方法調べてやってみます。
>
> (2012/02/10 10:03), Ando Noriaki wrote:
>> 八幡さん
>>
>> 安藤です
>>
>> openrtm.org のサイトで紹介しているOpenRTMのビルド方法のページでは、
>> omniORBの公式サイトで配布されているバイナリパッケージを使用しています。
>> したがって、omniORBをコンパイルしたい場合は別途ご自分でやって頂く必要があります。
>>
>>
>>
>> 2012年2月10日9:52 Yawata Naofumi :
>>> 安藤様。
>>>
>>> 八幡です。
>>> お早い対応をしていただいたのに、
>>> メールの返事遅れまして申し訳ありません。
>>>
>>> omniORBのビルドを行いたかったので一度OpenRTM-aistを
>>> ソースコードからビルドできるかを確認していました。
>>>
>>> ビルドに関してはこ ちらのページを参考に行ったのですが、
>>> C:/distribution/omniORM-4.1.4/bin/ 内のファイルは変更されず
>>> omniORBに関わる部分がビルドされているのかわかりませんでした。
>>>
>>> 加えて、上記のページのバッチファイルを用いて行うとOpenRTM-aist
>>> 全体のビルドを行なっていましたが、
>>>
>>> ./installer/autowix.cmd line:84〜99
>>>
>>> if "x%OMNI_ROOT%" == "x" (
>>> echo Environment Variable "OMNI_EOOR" is not set. Abort.
>>> goto END
>>> )
>>> set INCLUDE_OMNIORB=YES
>>>
>>> if not exist omniORB_inc.wxs (
>>> cd omniORB
>>> set TMP_PYTHONPATH=%PYTHONPATH%
>>> set PYTHONPATH=../../bin;%PYTHONPATH%
>>> echo Generating omniORB_inc.wxs......
>>> omniwxs.py
>>> set PYTHONPATH=%TMP_PYTHONPATH%
>>> copy omniORB_inc.wxs ..
>>> cd ..
>>> )
>>>
>>> 以外をコメントアウトすることでomniORBのみビルドを行えるのでしょうか?
>>>
>>> 八幡さんがやりたい事というのは、operationのリクエストの到達から実際に
>>> operationがdispatchされるまでの時刻を計測したいということでよろしいでしょうか?
>>>
>>> また、上記についてなのですが、もう少し詳しくお伺いさせていただきたいのですが、
>>> あるクライアントが別PC上のサーバを呼び出す際のomniORBの動作は"GIOPパケット受信
>>> からディスパッチ"と"ディスパッチの終わりからGIOPパケットの送信"ということで
>>> よろしいのでしょうか?
>>>
>>> もしそうなのであればインターセプタは
>>>
>>> clientSendRequest
>>> clientReceiveReply
>>> serverReceiveRequest
>>> serverSendReply
>>>
>>> の4つであり、これらを利用するにはサーバコード内で
>>>
>>> omniInterceptors* interceptors = omniORB::getInterceptors();
>>> interceptors->clientSendRequest.add(myInterceptorFunc);
>>> //myInterceptorFuncは呼び出したい関数名
>>>
>>> を記述すればいいということでしょうか?
>>>
>>> 知識足らずで質問が多くなってしまい申し訳ございません。
>>> 宜しくお願いいたします。
>>>
>>>
>>> (2012/02/09 11:57), Ando Noriaki wrote:
>>>
>>> 安藤です
>>>
>>> 安藤さん
>>>
>>> お早い返信ありがとうございます。
>>> また、返信が夜遅くになりまして、申し訳ございません。
>>>
>>> 八幡さんがやりたい事というのは、operationのリクエストの到達から実際に
>>> operationがdispatchされるまでの時刻を計測したいということでよろしいでしょうか?
>>>
>>> はい、そのとおりです。
>>>
>>> お教えいただいた
>>>
>>> omniInterceptors::serverReceiveRequest_T::info_T info(*this);
>>>
>>> については、まだどのような動作をするのか分からないので調べて
>>> 利用してみようと思います。
>>>
>>> omniinterceptorについてはこちらに書いてあります
>>> http://omniorb.sourceforge.net/omni40/omniORB/omniORB010.html
>>>
>>> ご質問なのですが、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ファイルが確認できました。
>>>
>>> OpenRTMの配布パッケージにはomniORBのバイナリとヘッダしか
>>> 含まれていません。(ソースは必要ありませんので。)
>>>
>>> また、もしomniORBのソースを書き換えて時間を計測したいのでしたら、
>>> omniORBを再コンパイルする日通用がありますよ。
>>>
>>> ただ、ちょっと気になってomniORBのコード(GIOP_S.cc)を眺めていたら、
>>> omniInterceptors::serverReceiveRequest_T の呼び出しが、
>>> アンマーシャルのあとに行われているので、このインターセプタで
>>> 時刻を計測すると、アンマーシャル後の
>>> ・オブジェクトテーブル検索の時間
>>> ・スタブでの引数の展開と実オペレーション関数の呼び出し
>>> の時間だけを計測することになりそうです。
>>>
>>> 加えて上記については
>>> {
>>> omniInterceptors::serverReceiveRequest_T::info_T info(*this);
>>> omniInterceptorP::visit(info);
>>> }
>>> をomniInterceptors::serverReceiveRequest_Tと入れ替えると、
>>> 上手く動作しなくなるのでしょうか?
>>>
>>> 知識足らずな質問で申し訳ございません。
>>>
>>> これは、八幡さんがやりたい事に依存します。
>>> どこからどこまでの時間を測りたいかによってomniinterceptorが
>>> 使える場合と使えない場合がある、という意味です。
>>>
>>> 示していただいた論文では、オペレーションリクエスト開始、アンマーシャル、ディスパッチ
>>> までの時間を図っていたようですが、intercctptorの場所を見るかぎり、
>>> アンマーシャルの後に、serverreceiveRequestのinterceptor呼び出しがあるので、
>>> アンマーシャルを含めた時間が測れないのではないかと推測します。
>>>
>>> impl()->unmarshalRequestHeader(this); // アンマーシャル
>>>
>>> omniInterceptors::serverReceiveRequest_T::info_T info(*this);
>>> omniInterceptorP::visit(info); // interceptor呼び出し
>>>
>>> 上記のWebページにも以下のように書かれているので、たぶんこの
>>> 推測も正しいかと思います。
>>> (行われているのはリクエストヘッダのアンマーシャルだけのようですが。。。)
>>>
>>> serverReceiveRequest
>>> Called when the server receives a request, just after unmarshalling
>>> the request header. See the getCodeSetServiceContext() function in
>>> src/lib/omniORB/orbcore/cdrStream.cc for an example.
>>>
>>>
>>>
>>> 宜しくお願いいたします。
>>>
>>>
>>> (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 :
>>>
>>> 夜分遅くに失礼致します。
>>>
>>> 立命館大学の八幡と申します。
>>>
>>> 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 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 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 mailing list
> openrtm-users@openrtm.org
> http://www.openrtm.org/mailman/listinfo/openrtm-users

Yawata Naofumi
オフライン
Last seen: なし 前
登録日: 2012-01-27 16:20
[openrtm-users 02439] RTCの処理測定について

安藤様。

八幡です。

VMwareを用いてLinuxで開発を行いたいところですが、
マシンスペックの都合で、VMwareを用いて開発を行うと
現状厳しい所があるので、Windowsで開発を行なっています。
また、早めに結果が必要なので、Linuxに以降する
時間が無いのが現状です。

3月頃には、もう少しスペックの良いマシンが使えるので
その頃には、開発環境をLinux移そうと考えています。

(2012/02/10 11:39), Ando Noriaki wrote:
> 八幡さん
>
> 安藤です
>
> Windowsで開発されているようですが、Linuxはお使いにならないですか?
> Linuxであれば、omniORBのソースをダウンロードして configure; make 一発で
> コンパイルできますよ。Windowsの方はCygwin使ったりと少し面倒だったと思います。
>
>
>
>
> 2012年2月10日10:34 Yawata Naofumi :
>> 安藤様。
>>
>> ありがとうございます。
>> ビルド方法調べてやってみます。
>>
>> (2012/02/10 10:03), Ando Noriaki wrote:
>>> 八幡さん
>>>
>>> 安藤です
>>>
>>> openrtm.org のサイトで紹介しているOpenRTMのビルド方法のページでは、
>>> omniORBの公式サイトで配布されているバイナリパッケージを使用しています。
>>> したがって、omniORBをコンパイルしたい場合は別途ご自分でやって頂く必要があります。
>>>
>>>
>>>
>>> 2012年2月10日9:52 Yawata Naofumi :
>>>> 安藤様。
>>>>
>>>> 八幡です。
>>>> お早い対応をしていただいたのに、
>>>> メールの返事遅れまして申し訳ありません。
>>>>
>>>> omniORBのビルドを行いたかったので一度OpenRTM-aistを
>>>> ソースコードからビルドできるかを確認していました。
>>>>
>>>> ビルドに関してはこ ちらのページを参考に行ったのですが、
>>>> C:/distribution/omniORM-4.1.4/bin/ 内のファイルは変更されず
>>>> omniORBに関わる部分がビルドされているのかわかりませんでした。
>>>>
>>>> 加えて、上記のページのバッチファイルを用いて行うとOpenRTM-aist
>>>> 全体のビルドを行なっていましたが、
>>>>
>>>> ./installer/autowix.cmd line:84〜99
>>>>
>>>> if "x%OMNI_ROOT%" == "x" (
>>>> echo Environment Variable "OMNI_EOOR" is not set. Abort.
>>>> goto END
>>>> )
>>>> set INCLUDE_OMNIORB=YES
>>>>
>>>> if not exist omniORB_inc.wxs (
>>>> cd omniORB
>>>> set TMP_PYTHONPATH=%PYTHONPATH%
>>>> set PYTHONPATH=../../bin;%PYTHONPATH%
>>>> echo Generating omniORB_inc.wxs......
>>>> omniwxs.py
>>>> set PYTHONPATH=%TMP_PYTHONPATH%
>>>> copy omniORB_inc.wxs ..
>>>> cd ..
>>>> )
>>>>
>>>> 以外をコメントアウトすることでomniORBのみビルドを行えるのでしょうか?
>>>>
>>>> 八幡さんがやりたい事というのは、operationのリクエストの到達から実際に
>>>> operationがdispatchされるまでの時刻を計測したいということでよろしいでしょうか?
>>>>
>>>> また、上記についてなのですが、もう少し詳しくお伺いさせていただきたいのですが、
>>>> あるクライアントが別PC上のサーバを呼び出す際のomniORBの動作は"GIOPパケット受信
>>>> からディスパッチ"と"ディスパッチの終わりからGIOPパケットの送信"ということで
>>>> よろしいのでしょうか?
>>>>
>>>> もしそうなのであればインターセプタは
>>>>
>>>> clientSendRequest
>>>> clientReceiveReply
>>>> serverReceiveRequest
>>>> serverSendReply
>>>>
>>>> の4つであり、これらを利用するにはサーバコード内で
>>>>
>>>> omniInterceptors* interceptors = omniORB::getInterceptors();
>>>> interceptors->clientSendRequest.add(myInterceptorFunc);
>>>> //myInterceptorFuncは呼び出したい関数名
>>>>
>>>> を記述すればいいということでしょうか?
>>>>
>>>> 知識足らずで質問が多くなってしまい申し訳ございません。
>>>> 宜しくお願いいたします。
>>>>
>>>>
>>>> (2012/02/09 11:57), Ando Noriaki wrote:
>>>>
>>>> 安藤です
>>>>
>>>> 安藤さん
>>>>
>>>> お早い返信ありがとうございます。
>>>> また、返信が夜遅くになりまして、申し訳ございません。
>>>>
>>>> 八幡さんがやりたい事というのは、operationのリクエストの到達から実際に
>>>> operationがdispatchされるまでの時刻を計測したいということでよろしいでしょうか?
>>>>
>>>> はい、そのとおりです。
>>>>
>>>> お教えいただいた
>>>>
>>>> omniInterceptors::serverReceiveRequest_T::info_T info(*this);
>>>>
>>>> については、まだどのような動作をするのか分からないので調べて
>>>> 利用してみようと思います。
>>>>
>>>> omniinterceptorについてはこちらに書いてあります
>>>> http://omniorb.sourceforge.net/omni40/omniORB/omniORB010.html
>>>>
>>>> ご質問なのですが、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ファイルが確認できました。
>>>>
>>>> OpenRTMの配布パッケージにはomniORBのバイナリとヘッダしか
>>>> 含まれていません。(ソースは必要ありませんので。)
>>>>
>>>> また、もしomniORBのソースを書き換えて時間を計測したいのでしたら、
>>>> omniORBを再コンパイルする日通用がありますよ。
>>>>
>>>> ただ、ちょっと気になってomniORBのコード(GIOP_S.cc)を眺めていたら、
>>>> omniInterceptors::serverReceiveRequest_T の呼び出しが、
>>>> アンマーシャルのあとに行われているので、このインターセプタで
>>>> 時刻を計測すると、アンマーシャル後の
>>>> ・オブジェクトテーブル検索の時間
>>>> ・スタブでの引数の展開と実オペレーション関数の呼び出し
>>>> の時間だけを計測することになりそうです。
>>>>
>>>> 加えて上記については
>>>> {
>>>> omniInterceptors::serverReceiveRequest_T::info_T info(*this);
>>>> omniInterceptorP::visit(info);
>>>> }
>>>> をomniInterceptors::serverReceiveRequest_Tと入れ替えると、
>>>> 上手く動作しなくなるのでしょうか?
>>>>
>>>> 知識足らずな質問で申し訳ございません。
>>>>
>>>> これは、八幡さんがやりたい事に依存します。
>>>> どこからどこまでの時間を測りたいかによってomniinterceptorが
>>>> 使える場合と使えない場合がある、という意味です。
>>>>
>>>> 示していただいた論文では、オペレーションリクエスト開始、アンマーシャル、ディスパッチ
>>>> までの時間を図っていたようですが、intercctptorの場所を見るかぎり、
>>>> アンマーシャルの後に、serverreceiveRequestのinterceptor呼び出しがあるので、
>>>> アンマーシャルを含めた時間が測れないのではないかと推測します。
>>>>
>>>> impl()->unmarshalRequestHeader(this); // アンマーシャル
>>>>
>>>> omniInterceptors::serverReceiveRequest_T::info_T info(*this);
>>>> omniInterceptorP::visit(info); // interceptor呼び出し
>>>>
>>>> 上記のWebページにも以下のように書かれているので、たぶんこの
>>>> 推測も正しいかと思います。
>>>> (行われているのはリクエストヘッダのアンマーシャルだけのようですが。。。)
>>>>
>>>> serverReceiveRequest
>>>> Called when the server receives a request, just after unmarshalling
>>>> the request header. See the getCodeSetServiceContext() function in
>>>> src/lib/omniORB/orbcore/cdrStream.cc for an example.
>>>>
>>>>
>>>>
>>>> 宜しくお願いいたします。
>>>>
>>>>
>>>> (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 :
>>>>
>>>> 夜分遅くに失礼致します。
>>>>
>>>> 立命館大学の八幡と申します。
>>>>
>>>> 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 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 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 mailing list
>> openrtm-users@openrtm.org
>> http://www.openrtm.org/mailman/listinfo/openrtm-users
>
>

kumagai@tjcc.to...
オフライン
Last seen: なし 前
登録日: 2012-01-29 15:20
[openrtm-users 02440] RTCの処理測定について

東北学院の熊谷でございます。

単にRTCをお使いならVMwareでもいいと思います。VMwareでもかなり性能が
でますので。ただ、細かな時間のタイミング測定に使う場合は、VMwareは
気をつけた方がいいかもしれません。

といいますのも、もう1年くらい前だと思いますが、カーネルのプロファイラ
機能を使ってタスクのスケジュール具合のチェックをしようとしました。
(たしか、RTMに移行したあとに動作チェック出来るようにしようと思って
<タスクのスケジュールマニア(笑)<詳しくは2000年頃のロボット学会誌)
そのとき、VMwareをつかったのですが、タイミングを見た感じ、違和感を
感じました。Linuxをネイティブに入れてあったのがカーネルの新しくない
CentOSばかりで、すぐにネイティブ環境で試せず、そのうちネイティブで起動
しなければ、と思ってはいたのですが、まだしていないので、あくまで「感触」
の情報で恐縮です。(今回、思い出したのでいずれ確認してみます)
ただ、マクロな見た目には違いがなくとも、他のOSの上でエミュレーション
している部分がある以上、用心はした方が良いかもしれません。
これから新しいマシンが使えるなら&タイミングの計測が目的なら、
VMwareだけではなく、ネイティブにデュアルブートできるようにしておくことを
お勧めします。

別の見方をすれば、実行環境毎に細かなタイミングが変わっていると、
いろいろとやっかいではありますが....。

以上、情報になってない話ですが、ご参考まで。
--------------------------------------------
東北学院大学工学部 機械知能工学科 熊谷正朗

Yawata Naofumi さん:
> 安藤様。
>
> 八幡です。
>
> VMwareを用いてLinuxで開発を行いたいところですが、
> マシンスペックの都合で、VMwareを用いて開発を行うと
> 現状厳しい所があるので、Windowsで開発を行なっています。
> また、早めに結果が必要なので、Linuxに以降する
> 時間が無いのが現状です。
>
> 3月頃には、もう少しスペックの良いマシンが使えるので
> その頃には、開発環境をLinux移そうと考えています。
>
> (2012/02/10 11:39), Ando Noriaki wrote:
> > 八幡さん
> >
> > 安藤です
> >
> > Windowsで開発されているようですが、Linuxはお使いにならないですか?
> > Linuxであれば、omniORBのソースをダウンロードして configure; make 一発で
> > コンパイルできますよ。Windowsの方はCygwin使ったりと少し面倒だったと思います。
> >
> >
> >
> >
> > 2012年2月10日10:34 Yawata Naofumi :
> >> 安藤様。
> >>
> >> ありがとうございます。
> >> ビルド方法調べてやってみます。
> >>
> >> (2012/02/10 10:03), Ando Noriaki wrote:
> >>> 八幡さん
> >>>
> >>> 安藤です
> >>>
> >>> openrtm.org のサイトで紹介しているOpenRTMのビルド方法のページでは、
> >>> omniORBの公式サイトで配布されているバイナリパッケージを使用しています。
> >>> したがって、omniORBをコンパイルしたい場合は別途ご自分でやって頂く必要があり
ます。
> >>>
> >>>
> >>>
> >>> 2012年2月10日9:52 Yawata Naofumi :
> >>>> 安藤様。
> >>>>
> >>>> 八幡です。
> >>>> お早い対応をしていただいたのに、
> >>>> メールの返事遅れまして申し訳ありません。
> >>>>
> >>>> omniORBのビルドを行いたかったので一度OpenRTM-aistを
> >>>> ソースコードからビルドできるかを確認していました。
> >>>>
> >>>> ビルドに関してはこ ちらのページを参考に行ったのですが、
> >>>> C:/distribution/omniORM-4.1.4/bin/ 内のファイルは変更されず
> >>>> omniORBに関わる部分がビルドされているのかわかりませんでした。
> >>>>
> >>>> 加えて、上記のページのバッチファイルを用いて行うとOpenRTM-aist
> >>>> 全体のビルドを行なっていましたが、
> >>>>
> >>>> ./installer/autowix.cmd line:84〜99
> >>>>
> >>>> if "x%OMNI_ROOT%" == "x" (
> >>>> echo Environment Variable "OMNI_EOOR" is not set. Abort.
> >>>> goto END
> >>>> )
> >>>> set INCLUDE_OMNIORB=YES
> >>>>
> >>>> if not exist omniORB_inc.wxs (
> >>>> cd omniORB
> >>>> set TMP_PYTHONPATH=%PYTHONPATH%
> >>>> set PYTHONPATH=../../bin;%PYTHONPATH%
> >>>> echo Generating omniORB_inc.wxs......
> >>>> omniwxs.py
> >>>> set PYTHONPATH=%TMP_PYTHONPATH%
> >>>> copy omniORB_inc.wxs ..
> >>>> cd ..
> >>>> )
> >>>>
> >>>> 以外をコメントアウトすることでomniORBのみビルドを行えるのでしょうか?
> >>>>
> >>>> 八幡さんがやりたい事というのは、operationのリクエストの到達から実際に
> >>>> operationがdispatchされるまでの時刻を計測したいということでよろしいでしょ
うか?
> >>>>
> >>>> また、上記についてなのですが、もう少し詳しくお伺いさせていただきたいのです
が、
> >>>> あるクライアントが別PC上のサーバを呼び出す際のomniORBの動作は"GIOPパケット
受信
> >>>> からディスパッチ"と"ディスパッチの終わりからGIOPパケットの送信"ということ

> >>>> よろしいのでしょうか?
> >>>>
> >>>> もしそうなのであればインターセプタは
> >>>>
> >>>> clientSendRequest
> >>>> clientReceiveReply
> >>>> serverReceiveRequest
> >>>> serverSendReply
> >>>>
> >>>> の4つであり、これらを利用するにはサーバコード内で
> >>>>
> >>>> omniInterceptors* interceptors = omniORB::getInterceptors();
> >>>> interceptors->clientSendRequest.add(myInterceptorFunc);
> >>>> //myInterceptorFuncは呼び出したい関数名
> >>>>
> >>>> を記述すればいいということでしょうか?
> >>>>
> >>>> 知識足らずで質問が多くなってしまい申し訳ございません。
> >>>> 宜しくお願いいたします。
> >>>>
> >>>>
> >>>> (2012/02/09 11:57), Ando Noriaki wrote:
> >>>>
> >>>> 安藤です
> >>>>
> >>>> 安藤さん
> >>>>
> >>>> お早い返信ありがとうございます。
> >>>> また、返信が夜遅くになりまして、申し訳ございません。
> >>>>
> >>>> 八幡さんがやりたい事というのは、operationのリクエストの到達から実際に
> >>>> operationがdispatchされるまでの時刻を計測したいということでよろしいでしょ
うか?
> >>>>
> >>>> はい、そのとおりです。
> >>>>
> >>>> お教えいただいた
> >>>>
> >>>> omniInterceptors::serverReceiveRequest_T::info_T info(*this);
> >>>>
> >>>> については、まだどのような動作をするのか分からないので調べて
> >>>> 利用してみようと思います。
> >>>>
> >>>> omniinterceptorについてはこちらに書いてあります
> >>>> http://omniorb.sourceforge.net/omni40/omniORB/omniORB010.html
> >>>>
> >>>> ご質問なのですが、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ファイルが確認できました。
> >>>>
> >>>> OpenRTMの配布パッケージにはomniORBのバイナリとヘッダしか
> >>>> 含まれていません。(ソースは必要ありませんので。)
> >>>>
> >>>> また、もしomniORBのソースを書き換えて時間を計測したいのでしたら、
> >>>> omniORBを再コンパイルする日通用がありますよ。
> >>>>
> >>>> ただ、ちょっと気になってomniORBのコード(GIOP_S.cc)を眺めていたら、
> >>>> omniInterceptors::serverReceiveRequest_T の呼び出しが、
> >>>> アンマーシャルのあとに行われているので、このインターセプタで
> >>>> 時刻を計測すると、アンマーシャル後の
> >>>> ・オブジェクトテーブル検索の時間
> >>>> ・スタブでの引数の展開と実オペレーション関数の呼び出し
> >>>> の時間だけを計測することになりそうです。
> >>>>
> >>>> 加えて上記については
> >>>> {
> >>>> omniInterceptors::serverReceiveRequest_T::info_T info(*this);
> >>>> omniInterceptorP::visit(info);
> >>>> }
> >>>> をomniInterceptors::serverReceiveRequest_Tと入れ替えると、
> >>>> 上手く動作しなくなるのでしょうか?
> >>>>
> >>>> 知識足らずな質問で申し訳ございません。
> >>>>
> >>>> これは、八幡さんがやりたい事に依存します。
> >>>> どこからどこまでの時間を測りたいかによってomniinterceptorが
> >>>> 使える場合と使えない場合がある、という意味です。
> >>>>
> >>>> 示していただいた論文では、オペレーションリクエスト開始、アンマーシャル、デ
ィスパッチ
> >>>> までの時間を図っていたようですが、intercctptorの場所を見るかぎり、
> >>>> アンマーシャルの後に、serverreceiveRequestのinterceptor呼び出しがあるので、
> >>>> アンマーシャルを含めた時間が測れないのではないかと推測します。
> >>>>
> >>>> impl()->unmarshalRequestHeader(this); // アンマーシャル
> >>>>
> >>>> omniInterceptors::serverReceiveRequest_T::info_T info(*this);
> >>>> omniInterceptorP::visit(info); // interceptor呼び出し
> >>>>
> >>>> 上記のWebページにも以下のように書かれているので、たぶんこの
> >>>> 推測も正しいかと思います。
> >>>> (行われているのはリクエストヘッダのアンマーシャルだけのようですが。。。)
> >>>>
> >>>> serverReceiveRequest
> >>>> Called when the server receives a request, just after unmarshalling
> >>>> the request header. See the getCodeSetServiceContext() function in
> >>>> src/lib/omniORB/orbcore/cdrStream.cc for an example.
> >>>>
> >>>>
> >>>>
> >>>> 宜しくお願いいたします。
> >>>>
> >>>>
> >>>> (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 :
> >>>>
> >>>> 夜分遅くに失礼致します。
> >>>>
> >>>> 立命館大学の八幡と申します。
> >>>>
> >>>> 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 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 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 mailing list
> >> openrtm-users@openrtm.org
> >> http://www.openrtm.org/mailman/listinfo/openrtm-users
> >
> >
>
>

Yawata Naofumi
オフライン
Last seen: なし 前
登録日: 2012-01-27 16:20
[openrtm-users 02441] RTCの処理測定について

熊谷様

八幡です。

今までいろいろな論文を見ていてもOSにLinuxを用いているのが多かったので、
今回一区切りがつけば、次はLinux上での利用もしてみたいと思います。
ご意見ありがとうございました。

(2012/02/10 15:31), kumagai@tjcc.tohoku-gakuin.ac.jp wrote:
> 東北学院の熊谷でございます。
>
> 単にRTCをお使いならVMwareでもいいと思います。VMwareでもかなり性能が
> でますので。ただ、細かな時間のタイミング測定に使う場合は、VMwareは
> 気をつけた方がいいかもしれません。
>
> といいますのも、もう1年くらい前だと思いますが、カーネルのプロファイラ
> 機能を使ってタスクのスケジュール具合のチェックをしようとしました。
> (たしか、RTMに移行したあとに動作チェック出来るようにしようと思って
> <タスクのスケジュールマニア(笑)<詳しくは2000年頃のロボット学会誌)
> そのとき、VMwareをつかったのですが、タイミングを見た感じ、違和感を
> 感じました。Linuxをネイティブに入れてあったのがカーネルの新しくない
> CentOSばかりで、すぐにネイティブ環境で試せず、そのうちネイティブで起動
> しなければ、と思ってはいたのですが、まだしていないので、あくまで「感触」
> の情報で恐縮です。(今回、思い出したのでいずれ確認してみます)
> ただ、マクロな見た目には違いがなくとも、他のOSの上でエミュレーション
> している部分がある以上、用心はした方が良いかもしれません。
> これから新しいマシンが使えるなら&タイミングの計測が目的なら、
> VMwareだけではなく、ネイティブにデュアルブートできるようにしておくことを
> お勧めします。
>
> 別の見方をすれば、実行環境毎に細かなタイミングが変わっていると、
> いろいろとやっかいではありますが....。
>
> 以上、情報になってない話ですが、ご参考まで。
> --------------------------------------------
> 東北学院大学工学部 機械知能工学科 熊谷正朗
>
> Yawata Naofumi さん:
>> 安藤様。
>>
>> 八幡です。
>>
>> VMwareを用いてLinuxで開発を行いたいところですが、
>> マシンスペックの都合で、VMwareを用いて開発を行うと
>> 現状厳しい所があるので、Windowsで開発を行なっています。
>> また、早めに結果が必要なので、Linuxに以降する
>> 時間が無いのが現状です。
>>
>> 3月頃には、もう少しスペックの良いマシンが使えるので
>> その頃には、開発環境をLinux移そうと考えています。
>>
>> (2012/02/10 11:39), Ando Noriaki wrote:
>>> 八幡さん
>>>
>>> 安藤です
>>>
>>> Windowsで開発されているようですが、Linuxはお使いにならないですか?
>>> Linuxであれば、omniORBのソースをダウンロードして configure; make 一発で
>>> コンパイルできますよ。Windowsの方はCygwin使ったりと少し面倒だったと思います。
>>>
>>>
>>>
>>>
>>> 2012年2月10日10:34 Yawata Naofumi :
>>>> 安藤様。
>>>>
>>>> ありがとうございます。
>>>> ビルド方法調べてやってみます。
>>>>
>>>> (2012/02/10 10:03), Ando Noriaki wrote:
>>>>> 八幡さん
>>>>>
>>>>> 安藤です
>>>>>
>>>>> openrtm.org のサイトで紹介しているOpenRTMのビルド方法のページでは、
>>>>> omniORBの公式サイトで配布されているバイナリパッケージを使用しています。
>>>>> したがって、omniORBをコンパイルしたい場合は別途ご自分でやって頂く必要があり
> ます。
>>>>>
>>>>>
>>>>> 2012年2月10日9:52 Yawata Naofumi :
>>>>>> 安藤様。
>>>>>>
>>>>>> 八幡です。
>>>>>> お早い対応をしていただいたのに、
>>>>>> メールの返事遅れまして申し訳ありません。
>>>>>>
>>>>>> omniORBのビルドを行いたかったので一度OpenRTM-aistを
>>>>>> ソースコードからビルドできるかを確認していました。
>>>>>>
>>>>>> ビルドに関してはこ ちらのページを参考に行ったのですが、
>>>>>> C:/distribution/omniORM-4.1.4/bin/ 内のファイルは変更されず
>>>>>> omniORBに関わる部分がビルドされているのかわかりませんでした。
>>>>>>
>>>>>> 加えて、上記のページのバッチファイルを用いて行うとOpenRTM-aist
>>>>>> 全体のビルドを行なっていましたが、
>>>>>>
>>>>>> ./installer/autowix.cmd line:84〜99
>>>>>>
>>>>>> if "x%OMNI_ROOT%" == "x" (
>>>>>> echo Environment Variable "OMNI_EOOR" is not set. Abort.
>>>>>> goto END
>>>>>> )
>>>>>> set INCLUDE_OMNIORB=YES
>>>>>>
>>>>>> if not exist omniORB_inc.wxs (
>>>>>> cd omniORB
>>>>>> set TMP_PYTHONPATH=%PYTHONPATH%
>>>>>> set PYTHONPATH=../../bin;%PYTHONPATH%
>>>>>> echo Generating omniORB_inc.wxs......
>>>>>> omniwxs.py
>>>>>> set PYTHONPATH=%TMP_PYTHONPATH%
>>>>>> copy omniORB_inc.wxs ..
>>>>>> cd ..
>>>>>> )
>>>>>>
>>>>>> 以外をコメントアウトすることでomniORBのみビルドを行えるのでしょうか?
>>>>>>
>>>>>> 八幡さんがやりたい事というのは、operationのリクエストの到達から実際に
>>>>>> operationがdispatchされるまでの時刻を計測したいということでよろしいでしょ
> うか?
>>>>>> また、上記についてなのですが、もう少し詳しくお伺いさせていただきたいのです
> が、
>>>>>> あるクライアントが別PC上のサーバを呼び出す際のomniORBの動作は"GIOPパケット
> 受信
>>>>>> からディスパッチ"と"ディスパッチの終わりからGIOPパケットの送信"ということ
> で
>>>>>> よろしいのでしょうか?
>>>>>>
>>>>>> もしそうなのであればインターセプタは
>>>>>>
>>>>>> clientSendRequest
>>>>>> clientReceiveReply
>>>>>> serverReceiveRequest
>>>>>> serverSendReply
>>>>>>
>>>>>> の4つであり、これらを利用するにはサーバコード内で
>>>>>>
>>>>>> omniInterceptors* interceptors = omniORB::getInterceptors();
>>>>>> interceptors->clientSendRequest.add(myInterceptorFunc);
>>>>>> //myInterceptorFuncは呼び出したい関数名
>>>>>>
>>>>>> を記述すればいいということでしょうか?
>>>>>>
>>>>>> 知識足らずで質問が多くなってしまい申し訳ございません。
>>>>>> 宜しくお願いいたします。
>>>>>>
>>>>>>
>>>>>> (2012/02/09 11:57), Ando Noriaki wrote:
>>>>>>
>>>>>> 安藤です
>>>>>>
>>>>>> 安藤さん
>>>>>>
>>>>>> お早い返信ありがとうございます。
>>>>>> また、返信が夜遅くになりまして、申し訳ございません。
>>>>>>
>>>>>> 八幡さんがやりたい事というのは、operationのリクエストの到達から実際に
>>>>>> operationがdispatchされるまでの時刻を計測したいということでよろしいでしょ
> うか?
>>>>>> はい、そのとおりです。
>>>>>>
>>>>>> お教えいただいた
>>>>>>
>>>>>> omniInterceptors::serverReceiveRequest_T::info_T info(*this);
>>>>>>
>>>>>> については、まだどのような動作をするのか分からないので調べて
>>>>>> 利用してみようと思います。
>>>>>>
>>>>>> omniinterceptorについてはこちらに書いてあります
>>>>>> http://omniorb.sourceforge.net/omni40/omniORB/omniORB010.html
>>>>>>
>>>>>> ご質問なのですが、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ファイルが確認できました。
>>>>>>
>>>>>> OpenRTMの配布パッケージにはomniORBのバイナリとヘッダしか
>>>>>> 含まれていません。(ソースは必要ありませんので。)
>>>>>>
>>>>>> また、もしomniORBのソースを書き換えて時間を計測したいのでしたら、
>>>>>> omniORBを再コンパイルする日通用がありますよ。
>>>>>>
>>>>>> ただ、ちょっと気になってomniORBのコード(GIOP_S.cc)を眺めていたら、
>>>>>> omniInterceptors::serverReceiveRequest_T の呼び出しが、
>>>>>> アンマーシャルのあとに行われているので、このインターセプタで
>>>>>> 時刻を計測すると、アンマーシャル後の
>>>>>> ・オブジェクトテーブル検索の時間
>>>>>> ・スタブでの引数の展開と実オペレーション関数の呼び出し
>>>>>> の時間だけを計測することになりそうです。
>>>>>>
>>>>>> 加えて上記については
>>>>>> {
>>>>>> omniInterceptors::serverReceiveRequest_T::info_T info(*this);
>>>>>> omniInterceptorP::visit(info);
>>>>>> }
>>>>>> をomniInterceptors::serverReceiveRequest_Tと入れ替えると、
>>>>>> 上手く動作しなくなるのでしょうか?
>>>>>>
>>>>>> 知識足らずな質問で申し訳ございません。
>>>>>>
>>>>>> これは、八幡さんがやりたい事に依存します。
>>>>>> どこからどこまでの時間を測りたいかによってomniinterceptorが
>>>>>> 使える場合と使えない場合がある、という意味です。
>>>>>>
>>>>>> 示していただいた論文では、オペレーションリクエスト開始、アンマーシャル、デ
> ィスパッチ
>>>>>> までの時間を図っていたようですが、intercctptorの場所を見るかぎり、
>>>>>> アンマーシャルの後に、serverreceiveRequestのinterceptor呼び出しがあるので、
>>>>>> アンマーシャルを含めた時間が測れないのではないかと推測します。
>>>>>>
>>>>>> impl()->unmarshalRequestHeader(this); // アンマーシャル
>>>>>>
>>>>>> omniInterceptors::serverReceiveRequest_T::info_T info(*this);
>>>>>> omniInterceptorP::visit(info); // interceptor呼び出し
>>>>>>
>>>>>> 上記のWebページにも以下のように書かれているので、たぶんこの
>>>>>> 推測も正しいかと思います。
>>>>>> (行われているのはリクエストヘッダのアンマーシャルだけのようですが。。。)
>>>>>>
>>>>>> serverReceiveRequest
>>>>>> Called when the server receives a request, just after unmarshalling
>>>>>> the request header. See the getCodeSetServiceContext() function in
>>>>>> src/lib/omniORB/orbcore/cdrStream.cc for an example.
>>>>>>
>>>>>>
>>>>>>
>>>>>> 宜しくお願いいたします。
>>>>>>
>>>>>>
>>>>>> (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 :
>>>>>>
>>>>>> 夜分遅くに失礼致します。
>>>>>>
>>>>>> 立命館大学の八幡と申します。
>>>>>>
>>>>>> 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 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 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 mailing list
>>>> openrtm-users@openrtm.org
>>>> http://www.openrtm.org/mailman/listinfo/openrtm-users
>>>
>>

コメントを投稿するにはログインまたはユーザー登録を行ってください

ダウンロード

最新バージョン : 2.0.1-RELESE

統計

Webサイト統計
ユーザ数:2204
プロジェクト統計
RTコンポーネント307
RTミドルウエア35
ツール22
文書・仕様書2

Choreonoid

モーションエディタ/シミュレータ

OpenHRP3

動力学シミュレータ

OpenRTP

統合開発プラットフォーム

産総研RTC集

産総研が提供するRTC集

TORK

東京オープンソースロボティクス協会

DAQ-Middleware

ネットワーク分散環境でデータ収集用ソフトウェアを容易に構築するためのソフトウェア・フレームワーク