从java调用Perl,主要用于正则表达式匹配

我想从Java有效地执行Perl代码。 Perl的目的主要是执行正则表达式匹配(在某些测试中,Perl比Java更有效)

到目前为止,我发现了使用它的可能性: http : //metacpan.org/pod/Inline :: Java :: PerlInterpreter

另一种选择是在java中使用Runtime.exec()来调用Perl。

什么是最高性能的解决方案? 一个人比另一个人有优势吗? 我不能真正看到任何东西,除了PerlInterpreter仍然是实验性的,我不知道这是否会改变。 你知道从Java调用Perl的其他选项吗?

为什么对使用Perl的正则表达式function的java.util.regex.Patternjava.util.regex.Matcher类不满意? 😉

它必须是一个非常特殊的情况,从Java执行Perl来处理正则表达式会产生更好的性能。 无论Perl是否能够比Java更快地处理单个正则表达式,从Java启动Perl以及Java中的线程开销来正确管理分叉进程都会产生开销。

最有可能的是,通过直接在Java中处理正则表达式,您将获得更好的性能,除非您有非常大的数据要查询,这可能有助于降低调用单独进程的启动成本。

推荐步骤:

  • 首先用Java实现您的解决方案。
  • 如果Java解决方案对您的需求来说太慢,并且正则表达式部分是瓶颈,那么请探索其他选项。
  • 要执行Perl,Runtime.exec或Process可以正常工作,只需确保运行必要的线程来排空STDOUT和STDERR。