提振精神的建议

advice on boost spirit

本文关键字:      更新时间:2023-10-16

我想知道Boost Spirit Library有多好。

我已经开始阅读文档,但它似乎是一个非常庞大的框架,并要求大量的时间来掌握。我真的不想把时间浪费在一个不够好的框架上。

我想听听熟悉这个框架的用户对它的一些看法。

我的观点肯定是有偏见的,所以请持保留态度。

Spirit是一个巨大的框架,允许使用c++创建非常快速的解析器和生成器。创建的解析器和生成器与您自己的数据结构很好地集成在一起。"勇气"号需要对它的基础有一些了解,才能有效地使用。文档可读性相当好,用简单的术语解释了事情。实际上有数百个可用的示例,我建议将其作为文档的一部分。理解这些例子是学习如何使用Spirit的一个组成部分。简单的任务很容易解决,更复杂的任务往往需要一些思考和实验才能解决(但这可能不是Spirit所特有的)。Spirit有一个活跃的社区,一个有响应和帮助的邮件列表,以及一个有大量附加信息的酷网站。一般来说,如果你被卡住了,寻求帮助是很简单的。

如果你犯了错误,你要付出的代价是增加编译时间和大量的编译器模板错误消息。但是一旦它被编译,它通常会在现场工作。

这是我在搜索有关Spirit的一些信息时遇到的老问题,但我想我应该在这里提出我的意见,供将来的读者参考。

一开始,我被勇气号的学习曲线吓到了,几乎要放弃了。但我很高兴我坚持了下来。这个解析器的性能很差。我以前使用PCRE用一些简单的正则表达式解析HTTP头。这是一个相当简单的操作,而且PCRE相当快,所以我没有期望看到太多的改进-如果有的话-在速度上。

天哪,我惊讶地发现它使性能提高了2000%以上。使用Spirit,我可以在1/4秒多一点的时间内解析100,000组HTTP报头。

与PCRE的等效代码相比,它的代码是如此干净和紧凑。我最初的函数是80行PCRE的globldygoop,现在是一个可爱的14行Spirit语法,以及一个Fusion适配器,可以将输出直接推送到我的类结构中。

很难学习,构建时间可能会很糟糕,但回报是惊人的。

相关文章:
  • 没有找到相关文章