簡體   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