分析在 Haskell 的解析器组合库中编写的解析器的标准方法是什么?
我目前正在使用uu-parsinglib
,但我很想知道分析其他解析器组合库的方法,如Parsec
.
现在我已经编写了我的解析器,它很慢并且占用了很多内存(对于 600 行输入文本,解析超过 1Gb 的内存大约需要 5 秒,我想研究如何改进它)
分析在 Haskell 的解析器组合库中编写的解析器的标准方法是什么?
我目前正在使用uu-parsinglib
,但我很想知道分析其他解析器组合库的方法,如Parsec
.
现在我已经编写了我的解析器,它很慢并且占用了很多内存(对于 600 行输入文本,解析超过 1Gb 的内存大约需要 5 秒,我想研究如何改进它)
尝试堆分析:
$ ./prog +RTS -K128M -hc -p
$ hp2ps -c prog.hp
如果配置文件看起来像一座山并且以兆字节为单位,那么您可能首先构建一个大型数据结构然后对其进行缩减(然后可以考虑使用累加器或记忆)。
更详细的信息:http ://book.realworldhaskell.org/read/profiling-and-optimization.html