[openrtm-users 02463] 長いデータタイプに対するrtprintの実行に時間がかかる

8 posts / 0 new
Last post
Manabu Saito
Offline
Last seen: Never ago
Joined: 2011-11-14 17:20
[openrtm-users 02463] 長いデータタイプに対するrtprintの実行に時間がかかる

ジェフ様

斉藤です。
何度もお手数をお掛けします。

rtprintで対象となるデータタイプの名称が長い時(ドットを含まず25文字以上)に、
modmgr.pyの以下の関数に非常に時間がかかるという現象が起きました。

def _find_module_names(expr):
'''Finds all potential module names in an expression.'''
return re.findall(r'(?P[a-zA-Z][\w.]*)+\.[a-zA-Z]', expr)

次回のリリースの際に処理方法を変えるなどしていただけると助かります。
_______________________________________________
openrtm-users mailing list
openrtm-users@openrtm.org
http://www.openrtm.org/mailman/listinfo/openrtm-users

Undefined
gbiggs
Offline
Last seen: 6 years 9 months ago
Joined: 2010-08-02 07:51
[openrtm-users 02464] 長いデータタイプに対するrtprintの実行に時間がかかる

斎藤様

ジェフです。

情報でありがとうございます。ただの25文字で長くなることはおかしいですね。
原因を探してみます。

よろしくお願いいたします。

On 17/02/12 21:38, Manabu Saito wrote:
> ジェフ様
>
> 斉藤です。
> 何度もお手数をお掛けします。
>
> rtprintで対象となるデータタイプの名称が長い時(ドットを含まず25文字以上)に、
> modmgr.pyの以下の関数に非常に時間がかかるという現象が起きました。
>
> def _find_module_names(expr):
> '''Finds all potential module names in an expression.'''
> return re.findall(r'(?P[a-zA-Z][\w.]*)+\.[a-zA-Z]', expr)
>
> 次回のリリースの際に処理方法を変えるなどしていただけると助かります。
_______________________________________________
openrtm-users mailing list
openrtm-users@openrtm.org
http://www.openrtm.org/mailman/listinfo/openrtm-users

gbiggs
Offline
Last seen: 6 years 9 months ago
Joined: 2010-08-02 07:51
[openrtm-users 02465] 長いデータタイプに対するrtprintの実行に時間がかかる

斉藤様

ジェフです。

こちらのpython(バージョン2.7.2)では長いstringでも時間は長くなりません。問題になる例を提供していただけませんか。

よろしくお願いいたします。

On Feb 17, 2012, at 9:38 PM, Manabu Saito wrote:

> ジェフ様
>
> 斉藤です。
> 何度もお手数をお掛けします。
>
> rtprintで対象となるデータタイプの名称が長い時(ドットを含まず25文字以上)に、
> modmgr.pyの以下の関数に非常に時間がかかるという現象が起きました。
>
> def _find_module_names(expr):
> '''Finds all potential module names in an expression.'''
> return re.findall(r'(?P[a-zA-Z][\w.]*)+\.[a-zA-Z]', expr)
>
> 次回のリリースの際に処理方法を変えるなどしていただけると助かります。
> _______________________________________________
> 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

Manabu Saito
Offline
Last seen: Never ago
Joined: 2011-11-14 17:20
[openrtm-users 02466] 長いデータタイプに対するrtprintの実行に時間がかかる

ジェフ様

斉藤です。
$ python
import re
re.findall(r'(?P[a-zA-Z][\w.]*)+\.[a-zA-Z]',
'move_base_msgs_MoveBaseResult')
とすると15秒ほどかかっております。

バージョンは2.6.5です。
$ python --version
Python 2.6.5

2012年2月20日11:59 Geoffrey Biggs :
> 斉藤様
>
> ジェフです。
>
> こちらのpython(バージョン2.7.2)では長いstringでも時間は長くなりません。問題になる例を提供していただけませんか。
>
> よろしくお願いいたします。
>
> On Feb 17, 2012, at 9:38 PM, Manabu Saito wrote:
>
>> ジェフ様
>>
>> 斉藤です。
>> 何度もお手数をお掛けします。
>>
>> rtprintで対象となるデータタイプの名称が長い時(ドットを含まず25文字以上)に、
>> modmgr.pyの以下の関数に非常に時間がかかるという現象が起きました。
>>
>> def _find_module_names(expr):
>> '''Finds all potential module names in an expression.'''
>> return re.findall(r'(?P[a-zA-Z][\w.]*)+\.[a-zA-Z]', expr)
>>
>> 次回のリリースの際に処理方法を変えるなどしていただけると助かります。
>> _______________________________________________
>> 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
Offline
Last seen: 3 days 13 hours ago
Joined: 2009-06-23 14:31
[openrtm-users 02467] 長いデータタイプに対するrtprintの実行に時間がかかる

たしかに、時間がかかりますね。手元のUbuntu10.04のPython2.6.5でも10秒くらいかかりました。
でも、これってrtshellの問題ではなくてPythonの問題では?

>> a = time.time() ; re.findall(r'(?P[a-zA-Z][\w.]*)+\.[a-zA-Z]', 'move_base_msgs_MoveBaseResult'); b = time.time(); b - a;
[]
11.579769849777222

2012年2月20日12:14 Manabu Saito :
> ジェフ様
>
> 斉藤です。
> $ python
> import re
> re.findall(r'(?P[a-zA-Z][\w.]*)+\.[a-zA-Z]',
> 'move_base_msgs_MoveBaseResult')
> とすると15秒ほどかかっております。
>
> バージョンは2.6.5です。
> $ python --version
> Python 2.6.5
>
> 2012年2月20日11:59 Geoffrey Biggs :
>> 斉藤様
>>
>> ジェフです。
>>
>> こちらのpython(バージョン2.7.2)では長いstringでも時間は長くなりません。問題になる例を提供していただけませんか。
>>
>> よろしくお願いいたします。
>>
>> On Feb 17, 2012, at 9:38 PM, Manabu Saito wrote:
>>
>>> ジェフ様
>>>
>>> 斉藤です。
>>> 何度もお手数をお掛けします。
>>>
>>> rtprintで対象となるデータタイプの名称が長い時(ドットを含まず25文字以上)に、
>>> modmgr.pyの以下の関数に非常に時間がかかるという現象が起きました。
>>>
>>> def _find_module_names(expr):
>>> '''Finds all potential module names in an expression.'''
>>> return re.findall(r'(?P[a-zA-Z][\w.]*)+\.[a-zA-Z]', expr)
>>>
>>> 次回のリリースの際に処理方法を変えるなどしていただけると助かります。
>>> _______________________________________________
>>> 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
>
>
>
> --
> 斉藤 学 (Saito, Manabu)
> 東京大学 情報理工学系研究科 創造情報学専攻 修士2年
> mobile:090-3768-2158 e-mail:saito@jsk.t.u-tokyo.ac.jp
> 〒113-8656 東京都文京区本郷7-3-1
> 工学部二号館73A4(稲葉研究室) tel:03-5841-8360
> _______________________________________________
> openrtm-users mailing list
> openrtm-users@openrtm.org
> http://www.openrtm.org/mailman/listinfo/openrtm-users

Manabu Saito
Offline
Last seen: Never ago
Joined: 2011-11-14 17:20
[openrtm-users 02468] 長いデータタイプに対するrtprintの実行に時間がかかる

安藤様

はい、この処理を実現するためにPythonのre.findallを使うと問題があると思います。
なので、別の方法で実装したほうが良いと思います。

これでも根本的には同じ問題が起きるのですが、私はこんな処理をすると助かります。
if '.' in expr:
expr = expr[:expr.rfind('.')]
re.findall(r'(?P[a-zA-Z][\w.]*)+', expr);

良い改善案が出せなくて申し訳ないのですが。。。

2012年2月20日13:06 Ando Noriaki :
> たしかに、時間がかかりますね。手元のUbuntu10.04のPython2.6.5でも10秒くらいかかりました。
> でも、これってrtshellの問題ではなくてPythonの問題では?
>
>>> a = time.time() ; re.findall(r'(?P[a-zA-Z][\w.]*)+\.[a-zA-Z]', 'move_base_msgs_MoveBaseResult'); b = time.time(); b - a;
> []
> 11.579769849777222
>
>
> 2012年2月20日12:14 Manabu Saito :
>> ジェフ様
>>
>> 斉藤です。
>> $ python
>> import re
>> re.findall(r'(?P[a-zA-Z][\w.]*)+\.[a-zA-Z]',
>> 'move_base_msgs_MoveBaseResult')
>> とすると15秒ほどかかっております。
>>
>> バージョンは2.6.5です。
>> $ python --version
>> Python 2.6.5
>>
>> 2012年2月20日11:59 Geoffrey Biggs :
>>> 斉藤様
>>>
>>> ジェフです。
>>>
>>> こちらのpython(バージョン2.7.2)では長いstringでも時間は長くなりません。問題になる例を提供していただけませんか。
>>>
>>> よろしくお願いいたします。
>>>
>>> On Feb 17, 2012, at 9:38 PM, Manabu Saito wrote:
>>>
>>>> ジェフ様
>>>>
>>>> 斉藤です。
>>>> 何度もお手数をお掛けします。
>>>>
>>>> rtprintで対象となるデータタイプの名称が長い時(ドットを含まず25文字以上)に、
>>>> modmgr.pyの以下の関数に非常に時間がかかるという現象が起きました。
>>>>
>>>> def _find_module_names(expr):
>>>> '''Finds all potential module names in an expression.'''
>>>> return re.findall(r'(?P[a-zA-Z][\w.]*)+\.[a-zA-Z]', expr)
>>>>
>>>> 次回のリリースの際に処理方法を変えるなどしていただけると助かります。
>>>> _______________________________________________
>>>> 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
>>
>>
>>
>> --
>> 斉藤 学 (Saito, Manabu)
>> 東京大学 情報理工学系研究科 創造情報学専攻 修士2年
>> mobile:090-3768-2158 e-mail:saito@jsk.t.u-tokyo.ac.jp
>> 〒113-8656 東京都文京区本郷7-3-1
>> 工学部二号館73A4(稲葉研究室) tel:03-5841-8360
>> _______________________________________________
>> openrtm-users mailing list
>> openrtm-users@openrtm.org
>> http://www.openrtm.org/mailman/listinfo/openrtm-users
>
>
>
> --
> 安藤慶昭@独立行政法人産業技術総合研究所 知能システム研究部門
> 統合知能研究グループ 主任研究員, 博士(工学)
> 〒305-8568 つくば市梅園1-1-1 中央第2
> e-mail: n-ando@aist.go.jp, web: http://staff.aist.go.jp/n-ando
> OpenRTM-aist: http://www.openrtm.org
>
> Noriaki Ando, Ph.D.
> Senior Research Scientist, RT-Synthesis R.G., ISRI, AIST
> AIST Tsukuba Central 2, Tsukuba, Ibaraki 305-8568 JAPAN
> e-mail: n-ando@aist.go.jp, web: http://staff.aist.go.jp/n-ando
> OpenRTM-aist: http://www.openrtm.org
> _______________________________________________
> 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

gbiggs
Offline
Last seen: 6 years 9 months ago
Joined: 2010-08-02 07:51
[openrtm-users 02469] 長いデータタイプに対するrtprintの実行に時間がかかる

斉藤様

ジェフです。

こちらでPythonの2.7.2と3.2.2で同じ問題を確認しました。問題はドットがない
時ですね。調べてみます。

On 20/02/12 13:16, Manabu Saito wrote:
> 安藤様
>
> はい、この処理を実現するためにPythonのre.findallを使うと問題があると思います。
> なので、別の方法で実装したほうが良いと思います。
>
> これでも根本的には同じ問題が起きるのですが、私はこんな処理をすると助かります。
> if '.' in expr:
> expr = expr[:expr.rfind('.')]
> re.findall(r'(?P[a-zA-Z][\w.]*)+', expr);
>
> 良い改善案が出せなくて申し訳ないのですが。。。
>
> 2012年2月20日13:06 Ando Noriaki:
>> たしかに、時間がかかりますね。手元のUbuntu10.04のPython2.6.5でも10秒くらいかかりました。
>> でも、これってrtshellの問題ではなくてPythonの問題では?
>>
>>>> a = time.time() ; re.findall(r'(?P[a-zA-Z][\w.]*)+\.[a-zA-Z]', 'move_base_msgs_MoveBaseResult'); b = time.time(); b - a;
>> []
>> 11.579769849777222
>>
>>
>> 2012年2月20日12:14 Manabu Saito:
>>> ジェフ様
>>>
>>> 斉藤です。
>>> $ python
>>> import re
>>> re.findall(r'(?P[a-zA-Z][\w.]*)+\.[a-zA-Z]',
>>> 'move_base_msgs_MoveBaseResult')
>>> とすると15秒ほどかかっております。
>>>
>>> バージョンは2.6.5です。
>>> $ python --version
>>> Python 2.6.5
>>>
>>> 2012年2月20日11:59 Geoffrey Biggs:
>>>> 斉藤様
>>>>
>>>> ジェフです。
>>>>
>>>> こちらのpython(バージョン2.7.2)では長いstringでも時間は長くなりません。問題になる例を提供していただけませんか。
>>>>
>>>> よろしくお願いいたします。
>>>>
>>>> On Feb 17, 2012, at 9:38 PM, Manabu Saito wrote:
>>>>
>>>>> ジェフ様
>>>>>
>>>>> 斉藤です。
>>>>> 何度もお手数をお掛けします。
>>>>>
>>>>> rtprintで対象となるデータタイプの名称が長い時(ドットを含まず25文字以上)に、
>>>>> modmgr.pyの以下の関数に非常に時間がかかるという現象が起きました。
>>>>>
>>>>> def _find_module_names(expr):
>>>>> '''Finds all potential module names in an expression.'''
>>>>> return re.findall(r'(?P[a-zA-Z][\w.]*)+\.[a-zA-Z]', expr)
>>>>>
>>>>> 次回のリリースの際に処理方法を変えるなどしていただけると助かります。
>>>>> _______________________________________________
>>>>> 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
>>>
>>>
>>>
>>> --
>>> 斉藤 学 (Saito, Manabu)
>>> 東京大学 情報理工学系研究科 創造情報学専攻 修士2年
>>> mobile:090-3768-2158 e-mail:saito@jsk.t.u-tokyo.ac.jp
>>> 〒113-8656 東京都文京区本郷7-3-1
>>> 工学部二号館73A4(稲葉研究室) tel:03-5841-8360
>>> _______________________________________________
>>> openrtm-users mailing list
>>> openrtm-users@openrtm.org
>>> http://www.openrtm.org/mailman/listinfo/openrtm-users
>>
>>
>>
>> --
>> 安藤慶昭@独立行政法人産業技術総合研究所 知能システム研究部門
>> 統合知能研究グループ 主任研究員, 博士(工学)
>> 〒305-8568 つくば市梅園1-1-1 中央第2
>> e-mail: n-ando@aist.go.jp, web: http://staff.aist.go.jp/n-ando
>> OpenRTM-aist: http://www.openrtm.org
>>
>> Noriaki Ando, Ph.D.
>> Senior Research Scientist, RT-Synthesis R.G., ISRI, AIST
>> AIST Tsukuba Central 2, Tsukuba, Ibaraki 305-8568 JAPAN
>> e-mail: n-ando@aist.go.jp, web: http://staff.aist.go.jp/n-ando
>> OpenRTM-aist: http://www.openrtm.org
>> _______________________________________________
>> 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
_______________________________________________
openrtm-users mailing list
openrtm-users@openrtm.org
http://www.openrtm.org/mailman/listinfo/openrtm-users

gbiggs
Offline
Last seen: 6 years 9 months ago
Joined: 2010-08-02 07:51
[openrtm-users 02477] 長いデータタイプに対するrtprintの実行に時間がかかる

斉藤様

ジェフです。

原因を見つけて直しました。「Catastrophic backtracking」という現状でし
た。githubのtrunkに修正版をコミットしました。

ご報告、ありがとうございます。

On 21/02/12 08:16, Geoffrey Biggs wrote:
> 斉藤様
>
> ジェフです。
>
> こちらでPythonの2.7.2と3.2.2で同じ問題を確認しました。問題はドットがない
> 時ですね。調べてみます。
>
>
> On 20/02/12 13:16, Manabu Saito wrote:
>> 安藤様
>>
>> はい、この処理を実現するためにPythonのre.findallを使うと問題があると思います。
>> なので、別の方法で実装したほうが良いと思います。
>>
>> これでも根本的には同じ問題が起きるのですが、私はこんな処理をすると助かります。
>> if '.' in expr:
>> expr = expr[:expr.rfind('.')]
>> re.findall(r'(?P[a-zA-Z][\w.]*)+', expr);
>>
>> 良い改善案が出せなくて申し訳ないのですが。。。
>>
>> 2012年2月20日13:06 Ando Noriaki:
>>> たしかに、時間がかかりますね。手元のUbuntu10.04のPython2.6.5でも10秒くらいかかりました。
>>> でも、これってrtshellの問題ではなくてPythonの問題では?
>>>
>>>>> a = time.time() ; re.findall(r'(?P[a-zA-Z][\w.]*)+\.[a-zA-Z]', 'move_base_msgs_MoveBaseResult'); b = time.time(); b - a;
>>> []
>>> 11.579769849777222
>>>
>>>
>>> 2012年2月20日12:14 Manabu Saito:
>>>> ジェフ様
>>>>
>>>> 斉藤です。
>>>> $ python
>>>> import re
>>>> re.findall(r'(?P[a-zA-Z][\w.]*)+\.[a-zA-Z]',
>>>> 'move_base_msgs_MoveBaseResult')
>>>> とすると15秒ほどかかっております。
>>>>
>>>> バージョンは2.6.5です。
>>>> $ python --version
>>>> Python 2.6.5
>>>>
>>>> 2012年2月20日11:59 Geoffrey Biggs:
>>>>> 斉藤様
>>>>>
>>>>> ジェフです。
>>>>>
>>>>> こちらのpython(バージョン2.7.2)では長いstringでも時間は長くなりません。問題になる例を提供していただけませんか。
>>>>>
>>>>> よろしくお願いいたします。
>>>>>
>>>>> On Feb 17, 2012, at 9:38 PM, Manabu Saito wrote:
>>>>>
>>>>>> ジェフ様
>>>>>>
>>>>>> 斉藤です。
>>>>>> 何度もお手数をお掛けします。
>>>>>>
>>>>>> rtprintで対象となるデータタイプの名称が長い時(ドットを含まず25文字以上)に、
>>>>>> modmgr.pyの以下の関数に非常に時間がかかるという現象が起きました。
>>>>>>
>>>>>> def _find_module_names(expr):
>>>>>> '''Finds all potential module names in an expression.'''
>>>>>> return re.findall(r'(?P[a-zA-Z][\w.]*)+\.[a-zA-Z]', expr)
>>>>>>
>>>>>> 次回のリリースの際に処理方法を変えるなどしていただけると助かります。
>>>>>> _______________________________________________
>>>>>> 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
>>>>
>>>>
>>>>
>>>> --
>>>> 斉藤 学 (Saito, Manabu)
>>>> 東京大学 情報理工学系研究科 創造情報学専攻 修士2年
>>>> mobile:090-3768-2158 e-mail:saito@jsk.t.u-tokyo.ac.jp
>>>> 〒113-8656 東京都文京区本郷7-3-1
>>>> 工学部二号館73A4(稲葉研究室) tel:03-5841-8360
>>>> _______________________________________________
>>>> openrtm-users mailing list
>>>> openrtm-users@openrtm.org
>>>> http://www.openrtm.org/mailman/listinfo/openrtm-users
>>>
>>>
>>>
>>> --
>>> 安藤慶昭@独立行政法人産業技術総合研究所 知能システム研究部門
>>> 統合知能研究グループ 主任研究員, 博士(工学)
>>> 〒305-8568 つくば市梅園1-1-1 中央第2
>>> e-mail: n-ando@aist.go.jp, web: http://staff.aist.go.jp/n-ando
>>> OpenRTM-aist: http://www.openrtm.org
>>>
>>> Noriaki Ando, Ph.D.
>>> Senior Research Scientist, RT-Synthesis R.G., ISRI, AIST
>>> AIST Tsukuba Central 2, Tsukuba, Ibaraki 305-8568 JAPAN
>>> e-mail: n-ando@aist.go.jp, web: http://staff.aist.go.jp/n-ando
>>> OpenRTM-aist: http://www.openrtm.org
>>> _______________________________________________
>>> 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
> _______________________________________________
> 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

Log in or register to post comments

Download

latest Releases : 2.0.0-RELESE

2.0.0-RELESE Download page

Number of Projects

Choreonoid

Motion editor/Dynamics simulator

OpenHRP3

Dynamics simulator

OpenRTP

Integrated Development Platform

AIST RTC collection

RT-Components collection by AIST

TORK

Tokyo Opensource Robotics Association

DAQ-Middleware

Middleware for DAQ (Data Aquisition) by KEK