繁体   English   中英

野牛和词法语法编译缓慢

[英]Slow compilation of bison and lex grammar

我使用bison和flex使用grammar.y文件生成了C解析器。 它可以正确编译,并在大约10秒钟内快速完成。 我已经更改了bison和flex参数以获取C ++输出,尽管它会生成正确的结果,但是编译和输出CPP语法结果大约需要1分钟。 有谁有解决这个问题的想法? 语法文件约为6000行。

使C ++编译像糖蜜一样缓慢运行是很常见的,具体取决于C ++代码的复杂性。 C ++编译器有很多工作要做,以解决问题。 比C编译器要做的工作更多。 我有一些C ++代码需要几分钟的时间,并且要花费将近一个GB的RAM。

使用机器人自动生成的LALR(1)解析器,野牛从6000行规则集中喷涌而出,这并不是完全出乎意料的结果。 如果解析器的运行时性能不是至关重要的,则可以通过删除针对robo生成的语法文件的-O优化选项来加快处理速度。 这可能会加快速度。

您也可以尝试更新编译器。 在最近的版本中,gcc的性能已显着提高,因此,如果您使用的是较旧的gcc,则可能会看到改进。

欢迎使用C ++。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM