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

Geoffrey Biggs geoffrey.biggs @ aist.go.jp
2012年 2月 23日 (木) 15:11:08 JST


斉藤様

ジェフです。

原因を見つけて直しました。「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<mod>[a-zA-Z][\w.]*)+', expr);
>>
>> 良い改善案が出せなくて申し訳ないのですが。。。
>>
>> 2012年2月20日13:06 Ando Noriaki<n-ando @ aist.go.jp>:
>>> たしかに、時間がかかりますね。手元のUbuntu10.04のPython2.6.5でも10秒くらいかかりました。
>>> でも、これってrtshellの問題ではなくてPythonの問題では?
>>>
>>>>> a = time.time() ; re.findall(r'(?P<mod>[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<saito @ jsk.t.u-tokyo.ac.jp>:
>>>> ジェフ様
>>>>
>>>> 斉藤です。
>>>> $ python
>>>> import re
>>>> re.findall(r'(?P<mod>[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<geoffrey.biggs @ aist.go.jp>:
>>>>> 斉藤様
>>>>>
>>>>> ジェフです。
>>>>>
>>>>> こちらの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<mod>[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 メーリングリストの案内