Профилирующие парсеры, написанные с использованием библиотек парсера-комбинатора в Haskell

Каковы стандартные методы профилирования парсера, написанные в библиотеках комбинатора парсера в Haskell?

Я сейчас пользуюсь uu-parsinglib но мне было бы очень интересно узнать методы профилирования и других библиотек синтаксического анализатора, таких как Parsec,

Сейчас я написал свой анализатор, и он работает медленно и много оперативной памяти (для ввода 600 строк текста требуется около 5 секунд для анализа более 1 ГБ ОЗУ, и я хочу изучить, как его улучшить)

1 ответ

Попробуйте профилирование кучи:

$ ./prog +RTS -K128M -hc -p 
$ hp2ps -c prog.hp

Если профиль похож на гору и находится в мегабайтах, возможно, вы сначала строите большую структуру данных, а затем уменьшаете ее (а затем можете использовать аккумуляторы или запоминание).

Более подробная информация: http://book.realworldhaskell.org/read/profiling-and-optimization.html

Другие вопросы по тегам