gpt4 book ai didi

c - Perl 或 C 的解析速度更快吗?

转载 作者:太空狗 更新时间:2023-10-29 16:28:10 32 4
gpt4 key购买 nike

我有几个非常大的日志文件,我需要解析它们。易于实现显然让我想到了 Perl 和正则表达式组合(我在这方面还是个新手)。但是速度呢?用 C 实现它会更快吗?每个日志文件大约为 2 GB。

最佳答案

除非您手动编译 RE,否则我非常怀疑 C 会比 Perl 更快。

通过手动编译,我的意思是直接对有限状态机 (FSM) 进行编码,而不是使用 RE 引擎对其进行编译。这种方法意味着您可以针对您的特定情况对其进行优化,这通常比依赖更通用的引擎更快。

但是,如果没有 lex、yacc、bison 或其他类似工具的帮助,我不会向那些以前不必编写编译器或解析器的人提出这样的建议。

通用引擎,例如 PCRE,通常功能强大且速度足够快(无论如何满足我的需求,而且这些需求通常非常苛刻)。

当使用通用 RE 引擎时,它需要能够处理各种情况,无论它是用 C 还是 Perl 编写的。当您考虑哪个更快时,您只需比较两种情况下 RE 引擎的编写方式(提示:Perl RE 引擎不是是用 Perl 编写的)。

它们都是用 C 语言编写的,因此您应该发现在匹配速度方面差别很小。

可能会发现围绕 RE 的支持代码存在差异,但这将是最小的,特别是如果它是一个简单的读取/匹配/输出循环。

关于c - Perl 或 C 的解析速度更快吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/743265/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com