大型Raku语法编译速度极慢问题排查求助
复现步骤
抱歉,无法提供最小可复现示例(MRE)。代码由自动生成,可能不够完善。以下是复现步骤:
步骤1
编译代码:time raku --stagestats ECMA-grammar.rakumod。在本地机器上耗时7秒,尚在可接受范围。
Stage start : 0.000 Stage parse : 6.814 Stage syntaxcheck: 0.000 Stage ast : 0.000 Stage optimize : 0.068 Stage mast : 0.208 Stage mbc : 0.014 Stage moar : 0.000 real 0m7.210s user 0m7.208s sys 0m0.413s
步骤2
取消注释EqualityExpression令牌(第193-196行)后重新编译,本地耗时增至19秒,已过长。
步骤3
为此令牌编写了优化版本,若注释第193-196行并取消注释第197-200行,编译耗时为11秒,虽有改善但仍远高于7秒。
其他测试
若取消更多令牌注释,编译时间呈指数增长:1分钟、2分钟、5分钟甚至更久,从未成功编译完整文件。
技术问询
- 导致编译耗时过长的具体原因是什么?即应避免哪些操作以保证编译耗时正常?
- 是否需要在GitHub上提交Issue?
内容的提问来源于stack exchange,提问作者fingolfin
相关产品推荐
相关产品推荐

