Каждый раз, когда импортируется файл python, который содержит большое количество статических регулярных выражений, циклы процессора тратятся на компиляцию строк в их представительные машины состояний в памяти.
a = re.compile("a.*b")
b = re.compile("c.*d")
...
Вопрос: Возможно ли сохранить эти регулярные выражения в кеше на диске в предварительно скомпилированном виде, чтобы избежать необходимости выполнять компиляции регулярных выражений при каждом импорте?
Травление объекта просто делает следующее, в результате чего происходит компиляция:
>>> import pickle
>>> import re
>>> x = re.compile(".*")
>>> pickle.dumps(x)
"cre\n_compile\np0\n(S'.*'\np1\nI0\ntp2\nRp3\n."
И re
объекты немаркируются:
>>> import marshal
>>> import re
>>> x = re.compile(".*")
>>> marshal.dumps(x)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: unmarshallable object