我的一位朋友最近告诉我“要优化你的网站,你可能想要编译你的php文件” 而我就像“什么?”
老实说,我从来没有听说过,我是一个“先进天真”的程序员,这意味着我是自学成才,我建造了复杂的网站,但我仍然缺少一些东西......
底线:
编译php是什么意思?在exe文件中转换它们?为什么?更快?
答案 0 :(得分:12)
虽然需要在每次调用时解释PHP代码,但字节码是预编译的代码,几乎可以立即运行。 如果你经营一个更大的网站,你通常只需要它。
以下工具可用于编译脚本或运行已编译的脚本:
答案 1 :(得分:6)
除非你经历过严肃的表现,否则使用像Facebook的HipHop这样的东西来编译PHP可能有点过分了。
我只是在你的机器上安装/配置备用PHP缓存(APC),它将缓存已编译的字节码,并且可以立即提升性能。
答案 2 :(得分:2)
答案 3 :(得分:2)
编译器的想法是将人类可读代码(C,PHP,Java等)转换为机器可读代码。当您执行PHP脚本时,它们被解释(几乎是内联编译),这意味着它们逐行读取,并且相应地执行代码。
编译代码,意味着它是在源代码编译的,因此已经是机器语言(或者像Java这样的VM语言的字节代码),因此,服务器不必每次都解释代码。这样可以更快。
Facebook创建了一个PHP编译器来加速他们的网站。编译代码的想法通常是,一旦编写,它就不会改变一段时间,因此每次执行代码时都必须将其解释为机器语言。这就是为什么你的朋友意味着优化。
因此它将被转换为机器语言或字节码(不是exe,但是有效的概念)。
答案 4 :(得分:1)
你的应用程序越大,它就越有意义。 PHP将整个程序加载到内存中,然后动态编译:意味着需要使用它。因此,如果您预先编译它应该跳过该步骤。 Facebook做了这样的事情。通过称为嘻哈的东西将他们的PHP翻译成C ++。不完全相同,但你明白了。
我怀疑这会对较小的应用程序产生很大的影响。