Первый блин - комом

Нахваливал я тут PLY, а зря. Разбор двух с половиной мегабайтного заголовка с построением синтаксического дерева занимает верных полторы минуты. И это на AMD Opteron 250 2.4GHz. Эталонный Althon XP, по всей видимости, будет делать то же самое минут десять. Это никуда не годиться.

В профайлере наблюдается вот такая картина:

Profiler output

Время съедает непосредственно разбор, а не анализ результатов разбора и создание синтаксического дерева. Python-ая природа PLY сделала свое черное дело. :-)

Вариантов видится пока два:

  1. Портировать парсер на С++ и GNU Bison;

  2. Разобраться таки с DParser.

Второй вариант намного предпочтительнее, так как всю логику можно будет по-прежнему писать на Python.

comments powered by Disqus