― MozillaZine.jp フォーラムは Mozilla 製品に関する情報交換の場です ―



All times are UTC + 9 hours

新しいトピックを投稿する トピックへ返信する  [ 7 件の記事 ] 
作成者 メッセージ
投稿記事Posted: 2009年6月03日(水) 22:59 
オフライン
Moderator

登録日時: 2007年5月29日(火) 13:31
記事: 390
お住まい: Japan
こんばんは♪

Firefoxのページ内検索機能を強化するアドオンXUL/Migemo の件です。

症状:
とある操作をするとFirefoxがCPUを喰らう状態でレインボーカーソル出現(フリーズ)で強制終了するしか術が無くなります。

発生条件:
1)XUL/Migemoの設定はデフォルト設定のままで使用
2)Location Bar に文章?長い?文を入力する。(コマンド + V でペーストする)
↓ 以下の文をLocation Bar にペーストします。そうすると、程なくしてFirefoxがフリーズします。
例:I think that the texture of a big icon is good

発生環境:
XUL/Migemo 0.11.14(最新バージョン)
Mac OS X(10.5.7) , Intel Mac
Firefox 3.0.10, Shiretoko/3.5pre(ID: 20090603031333) などなど

補足:
新規プロファイル下でXUL/Migemo のみを入れた際にも起きます。
(XUL/Migemoの設定はデフォルト設定のままで使用)

暫定処置の方法:
アドオンXUL/Migemo の環境設定> Combination 設定 で サーチ対象として「Location Bar」のチェックを外す事で、Firefoxのフリーズは防げます。
Location Bar をXUL/Migemo の検索の動作環境から除外する事となりますが......。



でも、自分の環境だけの不具合なのでしょうか?

_________________
[ macOS 15 Sequoia] iMac (27-inch, 2019) Intel Core i5 3.0GHz, Built-in SSD 512GB, RAM 40GB


通報する
ページトップ
 プロフィール  
引用付きで返信する  
投稿記事Posted: 2009年6月03日(水) 23:35 
オフライン
Moderator

登録日時: 2007年5月03日(木) 01:11
記事: 92
お住まい: 東京
メールの方に反応できてなくてごめんなさい。
この問題は、XUL/Migemoの設計上の問題ということで、今の所どうにもいい解決策を思いつけずにいます。

XUL/Migemoはロケーションバーへの入力を空白区切りのAND検索として扱うようになってるんですが、これを実現するために内部的には、例えば「aiueo kakikukeko sasisuseso」という入力に対してだったら「.*(aiueo).*(kaikukeko).*(sasisuseso).*|.*(aiueo).*(sasisuseso).*.*(kaikukeko).*|.*(kaikukeko).*(aiueo).*(sasisuseso).*|.*(kaikukeko).*(sasisuseso).*(aiueo).*|.*(sasisuseso).*(aiueo).*(kaikukeko).*|.*(sasisuseso).*(kaikukeko).*(aiueo).*」という風な、考えられる全ての組み合わせのパターンを展開した正規表現を生成しています。
この例ではそのまま「aiueo」等と書いていますが、この部分は実際には「aiueo|あいうえお|アイウエオ……」という感じのこれまた長い正規表現になります。
なので、単語の数が増えれば増えるほど正規表現はどんどん長くなっていって、普通の英文を貼り付けると、天文学的な数の組み合わせを全部生成しようとしてフリーズしてしまう、という具合です。現実的なスピードで動くのはせいぜい2~3語くらいまでだと思います。

migemo検索のための入力と見なさずに無視する閾値のようなものをどこかに設定するしかないと思うのですが、何を基準にすればよいものやら……


通報する
ページトップ
 プロフィール  
引用付きで返信する  
投稿記事Posted: 2009年6月03日(水) 23:49 
オフライン
Moderator

登録日時: 2007年5月29日(火) 13:31
記事: 390
お住まい: Japan
Piro さん、こんばんは♪

そー言う事でしたか。
原因が判っただけでもチョット安心しましたf^_^;。

無視する閾値の設定は確かに難しい問題ですね。

突然のフリーズで悩む人もいるでしょうから、
無視する閾値の設定?の件がクリアになるまで、
デフォルトの設定を改めては如何でしょうか?
(Combination 設定 >サーチ対象として「Location Bar」のチェックを外す)
それなりの知識が有る人だけ、その設定をONにして使用して貰うというのは如何でしょうか?

_________________
[ macOS 15 Sequoia] iMac (27-inch, 2019) Intel Core i5 3.0GHz, Built-in SSD 512GB, RAM 40GB


通報する
ページトップ
 プロフィール  
引用付きで返信する  
投稿記事Posted: 2009年6月08日(月) 02:57 
オフライン
Moderator

登録日時: 2007年5月03日(木) 01:11
記事: 92
お住まい: 東京
とりあえず手元のバージョンにおいて、

> これを実現するために内部的には、例えば「aiueo kakikukeko sasisuseso」という入力に対してだったら「(略)」という風な、考えられる全ての組み合わせのパターンを展開した正規表現を生成しています。

この処理を行わないようにしてみたところ、フリーズはしなくなりました。次のバージョンでこの変更を反映しようと思います。


通報する
ページトップ
 プロフィール  
引用付きで返信する  
投稿記事Posted: 2009年6月08日(月) 05:04 
オフライン
Moderator

登録日時: 2007年5月29日(火) 13:31
記事: 390
お住まい: Japan
Piro さんが書きました:
とりあえず手元のバージョンにおいて、

> これを実現するために内部的には、例えば「aiueo kakikukeko sasisuseso」という入力に対してだったら「(略)」という風な、考えられる全ての組み合わせのパターンを展開した正規表現を生成しています。

この処理を行わないようにしてみたところ、フリーズはしなくなりました。次のバージョンでこの変更を反映しようと思います。

Piro さん、スイマセンが確認させて下さい。
正規表現を生成する処理を行わない様にしても、
従来通りにLocation Bar上でもXUL/Migemo の検索動作が出来ると云う事でしょうか?

_________________
[ macOS 15 Sequoia] iMac (27-inch, 2019) Intel Core i5 3.0GHz, Built-in SSD 512GB, RAM 40GB


通報する
ページトップ
 プロフィール  
引用付きで返信する  
投稿記事Posted: 2009年6月08日(月) 09:21 
オフライン
Moderator

登録日時: 2007年5月03日(木) 01:11
記事: 92
お住まい: 東京
言葉で説明するのが難しいのですが、コード的にはこんな感じです。
http://www.cozmixng.org/retro/projects/ ... esets/4480
表面的な挙動は変わりません。スペース区切りで入力された単語の数をnとした時に、これまでは計算量がn乗だったのが、今後はn倍におさまるようになった(はず)、という感じです。
(ただしロケーションバーのみ。ブックマークの管理やサイドバーの方は今までのままです。)


通報する
ページトップ
 プロフィール  
引用付きで返信する  
投稿記事Posted: 2009年6月08日(月) 10:31 
オフライン
Moderator

登録日時: 2007年5月29日(火) 13:31
記事: 390
お住まい: Japan
Piro さん、御世話になります。

コードは理解出来るだけの知識を持っていない、
ただの一般ユーザーでありまして申し訳ないのですが良く判りません。
しかし、計算量がn乗だったのが、n倍で収まるのとの事で大幅な改善だと思います f^_^;。

今回の事は色々と御世話になりました。

では。

_________________
[ macOS 15 Sequoia] iMac (27-inch, 2019) Intel Core i5 3.0GHz, Built-in SSD 512GB, RAM 40GB


通報する
ページトップ
 プロフィール  
引用付きで返信する  
期間内表示:  ソート  
新しいトピックを投稿する トピックへ返信する  [ 7 件の記事 ] 

All times are UTC + 9 hours


オンラインデータ

このフォーラムを閲覧中のユーザー: なし & ゲスト[10人]


トピック投稿:  可
返信投稿:  可
記事編集: 不可
記事削除: 不可
ファイル添付: 不可

検索:
ページ移動:  
Powered by MozillaZine.jp® Forum Software © phpBB Group , Almsamim WYSIWYG
Japanese translation principally by ocean