質問

各時間pythonファイルの輸入を含む大量の静的な正規表現を、cpuサイクルしたり、編集、文字列その代表である国家機。

a = re.compile("a.*b")
b = re.compile("c.*d")
...

質問保存しておくことはできこれらの正規表現によるキャッシュディスクには、たゆる必要性を回避するために実行し、regexの編纂により各輸?

酸洗は、オブジェクトでは、以下の処理を行いますが編んでん:

>>> import pickle
>>> import re
>>> x = re.compile(".*")
>>> pickle.dumps(x)
"cre\n_compile\np0\n(S'.*'\np1\nI0\ntp2\nRp3\n."

re ブunmarshallable:

>>> import marshal
>>> import re
>>> x = re.compile(".*")
>>> marshal.dumps(x)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: unmarshallable object
役に立ちましたか?

解決

保存しておくことはできこれらの正規表現によるキャッシュディスクには、たゆる必要性を回避するために実行し、regexの編纂により各輸?

います。いくカスタムシリアライザとフックのC sre の実施にPythonの正規表現エンジンです。パフォーマンス特典が大幅に上回りの時間と労力が必要です。

第一に、そのような紹介のコードについて教えてください。いることは間違いの作成regexesの大部分、アプリケーションの実行時間。覚えていることをおこなっているだけとめ、初めてのモジュールを輸入し、現在の実行--その後、モジュールとその属性にキャッシュメモリ.

いるプログラムは基本的にspawns、集束regexes、口ばしてみが再学で行う複数の試験は一つの呼び出し.その再利用にregexes,前述のとおりといたしました。

最後に、あなたがコンパイルのregexes Cに基づく状態機械、そしてリンクして拡張モジュールです。こうする可能性があると思いますが、維持し、この排除regexパべるためのすべてがあります。

他のヒント

注それぞれのモジュールを初期化しも一度だけの人生のアプリでは、どんなに多くを輸入します。その場所にコンパイル表現のモジュールのグローバルなスコープ(ie.な機能を向上させてきたことに誇りを思います。

まず、明確な制限は、python reモジュールです。の原因となり制限時ど大きな正規表現にあります。の制限などが有名ですが、これらの長いプロセスおよび小型短寿命のプロセスのようなコマンドライン願います。

数年前かったので、できる掘り出しの結果、漬けでしunpickleで再利用します。問題は、が必要なので使用sre.py 炉内構造物ではなく、異なるpythonのバージョン

いてこのような特徴私のツールボックス.そして知の場合は別々のモジュールができるようにしております。

陳列棚 モジュールが表示される作品は、イブレア城、イブレア:


import re
import shelve
a_pattern = "a.*b"
b_pattern = "c.*d"
a = re.compile(a_pattern)
b = re.compile(b_pattern)

x = shelve.open('re_cache')
x[a_pattern] = a
x[b_pattern] = b
x.close()

# ...
x = shelve.open('re_cache')
a = x[a_pattern]
b = x[b_pattern]
x.close()

できるし、素敵なラッパークラスが自動的にキャッシュするような透明なユーザへの...運動のリーダー.

Open/usr/lib/python2.5/re.py 見た"def_compile".いただけre.py社内のキャッシュ機構。

できれregex(またはグループのregexs)を個別のファイルを動的に輸入ファイルのファイルが必要にimpモジュールです。いることは間違いなスケールもできるで作られています。

Hum,

な陳列棚に使用漬け?

とにかく、私は同意し、前anwsers.このモジュールの処理を一度だけ、ものかどうか疑問を持つもの作成regexpsお客様のアプリのボトルネックですね。タreモジュールを愛する高速でコードC:-)

でも、良いニュースはPythonのた素敵な地域なのではないでしょうかで誰かが現在のハッキングだけで作られています。

インターネットで調べ5秒から: http://home.gna.org/oomadness/en/cerealizer/index.html.

知らないまでもない場合は苦しい研究:-)

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top