2011-04-11 35 views
2

我想知道Boost精神庫有多好。關於提升精神的建議

我已經開始閱讀文檔,但它似乎是一個非常龐大的框架,並且需要很多時間才能成爲主人。我真的不想把時間浪費在一個並非如此美妙的框架上。

我想對這個框架有一些意見,從非常熟悉它的用戶那裏獲得。

回答

9

我的意見肯定是有偏見的,所以請帶上一粒鹽。

Spirit是一個巨大的框架,允許用C++創建非常快速的解析器和生成器。創建的解析器和生成器與您自己的數據結構很好地集成。 Spirit需要對其基礎知識進行有效的理解。這些文檔相當易讀,用簡單的術語解釋了一些事情。有幾百個可用的例子,我建議考慮一部分文檔。理解這些例子是學習如何使用Spirit不可或缺的部分。簡單的任務很容易解決,更復雜的任務往往需要一些思考和實驗來獲得正確的(但這可能不是特定於精神)。 Spirit有一個活躍的社區,一個快速響應和有用的郵件列表,還有一個很酷的網站,其中包含大量額外信息。一般來說,如果你陷入困境,獲得幫助就很簡單。

如果出現錯誤,您可以通過增加編譯時間和巨大的編譯器模板錯誤消息來支付所有這些優點。但一旦編譯完成,它通常會在現場工作。

+4

別忘了提及那些經常花時間回答人員問題的偉大開發人員,這裏是關於SO以及boost和spirit郵件列表的問題。 ;) – 2011-04-11 12:05:31

3

我在搜索Spirit的一些信息時遇到了一個老問題,但我想我會在這裏爲我的未來讀者提供2美分。

起初我被Spirit的學習曲線嚇到了,直到我幾乎放棄了。但我很高興我繼續前進。這個解析器的性能很糟糕。我以前使用PCRE用一些簡單的正則表達式來解析HTTP標頭。這是一個相當簡單的操作,PCRE速度非常快,所以我沒有預料到速度會有很大提高 - 如果有的話。

男孩驚訝地發現它將性能提高了2000%以上。藉助Spirit,我可以在超過1/4秒的時間內解析100,000組HTTP標頭。

與PCRE的等效代碼相比,踢球者的代碼非常乾淨和緊湊。我的原始功能是80行PCRE gobbledygoop,現在是一個可愛的14行Spirit語法,還有一個Fusion適配器,可以將輸出直接傳送到我的班級結構中。

學習困難,構建時間可能會變得很糟糕,但收益很棒。