3
在Haskell中剖析解析器組合器庫中編寫的解析器的標準方法是什麼?在Haskell中使用解析器組合器庫編寫的分析解析器
我目前使用的是uu-parsinglib
,但我會非常感興趣的是瞭解其他分析器組合器庫(如Parsec
)的分析方法。
現在我寫了我的解析器,它很慢,吃了很多內存(對於600行輸入文本,需要大約5秒鐘才能解析超過1Gb的RAM,我想研究如何改進它)
在Haskell中剖析解析器組合器庫中編寫的解析器的標準方法是什麼?在Haskell中使用解析器組合器庫編寫的分析解析器
我目前使用的是uu-parsinglib
,但我會非常感興趣的是瞭解其他分析器組合器庫(如Parsec
)的分析方法。
現在我寫了我的解析器,它很慢,吃了很多內存(對於600行輸入文本,需要大約5秒鐘才能解析超過1Gb的RAM,我想研究如何改進它)
嘗試堆紋:
$ ./prog +RTS -K128M -hc -p
$ hp2ps -c prog.hp
如果配置文件看起來像一座山,是在兆, 可能是你先構造一個大的數據結構,然後減少它 (然後可以考慮使用累加器或記憶)。
更詳細的信息:http://book.realworldhaskell.org/read/profiling-and-optimization.html
您使用,字符串和列表類型?這可能真的是內存密集型。 – TallerGhostWalt
「我的程序速度很慢,並且在給定小進口時吃了XXX GB RAM」通常意味着某處存在懶惰錯誤。這可能與您的_parser_無關,而是與您如何使用解析結果相關。 – MathematicalOrchid
@MathematicalOrchid:我正在將AST打印到終端 –