【问题标题】:Compiling PHP Into Standalone Executable (Faster?)将 PHP 编译成独立的可执行文件(更快?)
【发布时间】:2011-11-04 09:07:18
【问题描述】:

我有一个 PHP 脚本,我想编译成一个独立的命令行可执行文件,以便在 Linux 上运行。

这是现实的吗?有这方面的编译器吗?

我知道周围有 PHP 编译器,但我的问题更多的是它是否有优势,以及哪个是最好的编译器。

它会比通过 PHP 运行更快还是更慢?如果它可以加快我的脚本速度,那就太好了,因为它会进行大量处理(大量循环和数学运算)并且需要一个小时才能运行。

【问题讨论】:

    标签: php compiler-construction compilation


    【解决方案1】:

    我的理解是HipHop 编译为 C++,而不是 C,而且过程非常简单。 FaceBook 已将其应用于大量代码。

    我不确定您是否获得了 .exe,但 OP 只想要“更快”。他可能会得到很好的加速; HipHop 编译代码的平均速度只有 2 倍左右,但这是因为大部分 PHP 执行实际上是库调用。如果 HipHop 编译器能够找出计算代码中的数据类型,他的计算部分可能会得到相当不错的加速。他可能不得不稍微修改他的代码以使 HipHop 编译器清楚这一点,除了计算之外不使用他的计算变量,但这应该只是一个小的源代码更改。我希望 HipHop 站点包含有关如何按照这些思路加速 HipHop 编译代码的提示。

    所有这些都是基于我的理解而不是实际经验的有根据的猜测。 YMMV。

    【讨论】:

    • 是的,我写的 PHP 很干净,除了对未设置的变量进行计算——但这可以修复。
    • 取消设置变量然后仅将其用于数值算术可能是有助于编译器的事情之一。
    • 我不在同一个变量中使用不同的类型,但是我做了很多处理,其中 $var[1] 和 $var[3] 可以设置,但是 $var[2 ] 未设置,因为它的值为 0,所以我从不费心去设置它,而 PHP 只是将其视为值 0,这正是我想要的。这会是 HipHop 的问题吗?
    • 不知道...你不在我的经验范围内。如果 HipHop 确实生成了 C++ 数组,恕我直言,您最好确保所有插槽都填充有数字值。这不会伤害您的普通 PHP 代码。然而,我在这里是一名扶手椅专家,但我有很好的编译器背景,所以我的猜测可以说是受过教育的。现在你可以做我没有做的阅读了:-}
    • 只是想报告我花了 3 天的时间来安装 Hiphop,但是一旦我开始使用它,我的脚本时间减少了一半,RAM 使用量减少了 25%。非常感动!这就像魔术!
    【解决方案2】:

    好吧,如果您的脚本运行几个小时,编译本身将不会增加什么。
    最好的解决方案是使用另一种语言,C 似乎是最好的选择。

    您可以尝试使用 hiphop 编译器将您的 PHP 转换为 C,但这不是我认为容易完成的任务

    【讨论】:

    • 他如何将 C 用于 PHP 应用程序?我没明白你的意思。
    猜你喜欢
    • 2012-08-01
    • 2011-05-26
    • 2012-07-03
    • 2011-03-18
    • 2010-12-20
    • 1970-01-01
    • 1970-01-01
    • 2011-11-30
    • 1970-01-01
    相关资源
    最近更新 更多