【问题标题】:Perl interpreter for PHPPHP 的 Perl 解释器
【发布时间】:2011-05-15 16:02:23
【问题描述】:

我正在为我的新站点计划的一些功能已经作为免费的 Perl 模块提供。因此,我正在研究使用它们的可能性,而不是在 PHP 中再次对其进行编码。本来打算用exec或者system函数来调用perl脚本,会很慢。但我遇到了一个pecl extension,它允许PHP to interpret perl code

这会影响我其他未使用 perl 脚本的 php 页面的性能吗?我知道额外的模块会增加我的内存使用量,但除此之外会不会有什么问题?

【问题讨论】:

标签: php perl interpreter pecl


【解决方案1】:

看起来它所做的只是将perl 嵌入到 PHP 进程中。您应该会看到几兆字节的内存增加以及您在 Perl 中创建的任何数据。它不应该减慢任何代码的速度。它只是另一个位于内存中的库,等待您调用它。此解决方案有两个好处:您不必浪费时间生成另一​​个进程,也不必解析正在打印的文本的返回值。

另一种解决方案是编写一个 Perl 守护程序并通过域套接字、管道或其他 IPC 方法与它通信。

您可能还对涵盖 embedding perl 的 Perl 文档感兴趣。

【讨论】:

  • 能否请您指出一些有关如何使用 daemon 进行操作的文档或教程?解释器或守护程序哪个更快?
  • 内置解释器会更快。无论如何,IPC 都会增加一些开销。但是,根据您要访问的 Perl 模块,将它们放在应用程序守护程序中可能是更好的关注点分离。 POE::Component::IKC 是专门为这种守护进程编写的。还有一些模块使用 XMLRPC。
【解决方案2】:

这些 Perl 模块是否提供了原生 PHP 中根本没有的东西?或者它们是否足够简单,您可以将它们转换为 PHP?

换句话说,你真的需要在这里运行 Perl 代码吗?

即使你不影响性能,你也会因为添加语言而影响系统的可维护性。

有时您确实需要在语言之间进行交互,但对我来说,这听起来不像是其中之一。在我看来,如果您在 PHP 中查找或编写等效的代码会更好。

您在其他地方的评论中说 Perl 代码“只是提供了一些方便的功能,例如 whois 查找”,所以我快速搜索了一下 google 并找到了这个:http://www.phpwhois.org/。还有很多其他相关的搜索结果。

【讨论】:

    猜你喜欢
    • 2011-01-04
    • 1970-01-01
    • 2014-10-25
    • 1970-01-01
    • 1970-01-01
    • 2013-12-10
    • 1970-01-01
    • 1970-01-01
    • 2013-06-19
    相关资源
    最近更新 更多