- 作成者投稿
- 2015年12月10日 11:59 pm #22197ent参加者
今まで Boost.Regex を使用して 大きめのファイルの検索をして時間がかかる場合、「検索中」というダイアログがさらに表示されるような場面(そのような条件)にて
Onigmoに切り替えて検索すると高頻度で “EmEditor core program は動作を停止しました” と出て異常終了します。
上記場面でOnigmo使用時に異常終了せず正常動作する場合は「検索中」というダイアログは表示されず非常に軽快に動作します。 ほとんどの場面でOnigmoは軽快に動作してくれるので普段使いの正規表現エンジンはOnigmoへ切り替えたいのですが、不意に異常終了することが多いため 導入を決意できません。異常終了する場合のファイルは
30MB, SHIFT-JIS, 9万行の固定長ファイルで、
検索条件が
大文字小文字を区別する:OFF
正規表現を使用する:ON
エスケープシーケンスを使用する:ON
単語のみ検索:OFF
インクリメンタルサーチ:OFF
グループのすべての文書から検索:OFF
選択した範囲のみ:OFF
文末まで検索したら文頭に移動する:ON
一致する文字列を数える:ON
終了したら閉じる:OFF
です。検索ワードは
(A|B|C) のように OR 条件|を 50個ほど繰り返しした 長さ502文字の正規表現です。以上についてご確認をお願いできますか。
それから本件に関係してもう一点ありまして、(Onigmoは関係なく以前から気になっていました)
Boost.Regex を使用して 大きめのファイルの検索をして時間がかかる場合、「検索中」というダイアログがでて、対象が見つかるとその位置へ移動して検索ワードがハイライトされますが
その後何も検索の操作などをしていないのにもかかわらず 再度「検索中」 ダイアログが出現して次の作業に取り掛かることを妨げられることがあります。しかも1度で終わらず2回くらいは繰り返し「検索中」が出てくることがあります。 この動作を見ていると どうにも 自分の操作の結果として意図した動作ではなく単純にイライラします。(1件目にヒットしたらそこで検索動作が終わってほしい)。
もしかすると 一致する文字列を数える:ON にしていることにより、最初にヒットした場所へまず移動して 残りの一致文字を再び数え始めているのかもしれませんが 私の意識としては 最初の1件目へジャンプした後はもうそこから作業を続けたいのに また「検索中」が出て作業を中断されることによりストレスしか感じません。もしそんな動きをしているのなら すべての文字数を数え終わってから 最初の1件目のヒット箇所へ移動するようなオプションも設定してください。 (Onigmoに切り替えて 高速動作するようになると こちらの件はあまり気にならなくなると思いますが、、、)こちらの件も確認いただけると幸いです。
以上、よろしくお願いいたします。
2015年12月11日 5:46 am #22198Yutaka Emuraキーマスターent 様
いつもお世話になっております。江村です。
Onigmo で異常終了する件ですが、スレッド数を 1 にしていただければ、この現象は無くなります。
次のバージョンでは、マルチスレッドの場合でも問題が無くなるように修正します。また、別件についても改善いたします。
よろしくお願い申し上げます。
- 作成者投稿
- このトピックに返信するにはログインしてください。