为什么要编译PHP文件?

时间:2011-05-05 15:09:12

标签: php build hiphop

我的一位朋友最近告诉我“要优化你的网站,你可能想要编译你的php文件” 而我就像“什么?”

老实说,我从来没有听说过,我是一个“先进天真”的程序员,这意味着我是自学成才,我建造了复杂的网站,但我仍然缺少一些东西......

底线:

编译php是什么意思?在exe文件中转换它们?为什么?更快?

5 个答案:

答案 0 :(得分:12)

虽然需要在每次调用时解释PHP代码,但字节码是预编译的代码,几乎可以立即运行。 如果你经营一个更大的网站,你通常只需要它。

以下工具可用于编译脚本或运行已编译的脚本:

答案 1 :(得分:6)

除非你经历过严肃的表现,否则使用像Facebook的HipHop这样的东西来编译PHP可能有点过分了。

我只是在你的机器上安装/配置备用PHP缓存(APC),它将缓存已编译的字节码,并且可以立即提升性能。

答案 2 :(得分:2)

Facebook使用这样的东西。他们的产品是hiphop,而且它是免费的。

答案 3 :(得分:2)

编译器的想法是将人类可读代码(C,PHP,Java等)转换为机器可读代码。当您执行PHP脚本时,它们被解释(几乎是内联编译),这意味着它们逐行读取,并且相应地执行代码。

编译代码,意味着它是在源代码编译的,因此已经是机器语言(或者像Java这样的VM语言的字节代码),因此,服务器不必每次都解释代码。这样可以更快。

Facebook创建了一个PHP编译器来加速他们的网站。编译代码的想法通常是,一旦编写,它就不会改变一段时间,因此每次执行代码时都必须将其解释为机器语言。这就是为什么你的朋友意味着优化。

因此它将被转换为机器语言或字节码(不是exe,但是有效的概念)。

答案 4 :(得分:1)

你的应用程序越大,它就越有意义。 PHP将整个程序加载到内存中,然后动态编译:意味着需要使用它。因此,如果您预先编译它应该跳过该步骤。 Facebook做了这样的事情。通过称为嘻哈的东西将他们的PHP翻译成C ++。不完全相同,但你明白了。

我怀疑这会对较小的应用程序产生很大的影响。