有没有一点要缩小PHP?

我知道你可以缩小PHP,但我想知道是否有任何意义。 PHP是一种解释型语言,因此运行速度比编译语言慢一点。 我的问题是:客户端会看到页面加载速度的显着提高,如果我要缩小我的PHP?

另外,有没有办法编译PHP或类似的东西?

PHP被编译成字节码,然后在类似于VM的东西上解释。 其他许多脚本语言都遵循相同的一般过程,包括Perl和Ruby。 这不是一个真正的传统的解释语言,比如BASIC。

如果你试图“缩小”来源,那么速度就不会有所提高。 通过使用像APC这样的字节码caching,您将获得重大的提升。

Facebook推出了一款名为HipHop的编译器,可将PHP源代码转换为C ++代码。 Ras PHP Lerdorf是PHP中的大个子之一, 今年早些时候为Digg做了演示 ,涵盖了HipHop的性能改进。 总之,这并不比优化代码和使用字节码caching快得多。 HipHop对于大多数用户来说是矫枉过正的。

Facebook最近还推出了HHVM ,这是一款基于HipHop工作的新型虚拟机。 它还是比较新的,它是否会为公众提供一个重大的性能提升尚不清楚。

只是为了确保明确说明,请详细阅读该演示文稿 。 它指出了许多基准和剖析代码的方法,并使用xdebug和xhprof等工具来识别瓶颈。

放弃缩小PHP而转向使用操作码caching(如PHP AcceleratorAPC的想法。

或者像memcached东西

用一些重写(较短的variables名称)可以节省几个字节的内存,但这也很less有意义。

不过,我devise的一些应用程序允许将包含脚本连接在一起。 用php -w可以显着压缩,为脚本启动增加一点速度增益。 在启用了操作码的服务器上,这只能保存几个文件的mtime检查。

这比广告更less回答。 我正在开发一个PHP扩展,它将Zend操作码转换为在静态types的虚拟机上运行。 它不会加速任意PHP代码。 它确实允许你编写运行速度比普通PHP允许的代码更快的代码。 这里的关键是静态打字。 在一个现代的CPU上,一个dynamic的语言会左右分支误预处罚。 事实上,PHP数组是哈希表也造成了很高的代价:很多分支预测失误,高速caching使用率低下,内存预取不足,以及没有任何SIMD优化。 分支预测失误和caching丢失尤其是今天处理器的死穴。 我的小VM通过使用静态types和C数组而不是哈希表来回避这些问题。 结果运行速度大概快了十倍。 这是使用字节码解释。 扩展可以select通过gcc编译一个函数。 在这种情况下,你会得到两到五倍的速度。

以下是感兴趣的人的链接:

https://github.com/chung-leong/qb/wiki

同样,扩展不是一般的PHP加速器。 你必须编写特定的代码。

有PHP编译器…看到这个前面的问题的列表; 但是(除非你是Facebook的大小或者将你的应用程序定位到运行客户端),它们通常比它们值得更多的麻烦

简单的操作码caching将为您所付出的努力带来更多好处。 或者分析您的代码来识别瓶颈,然后对其进行优化。

你不需要缩小PHP。 为了获得更好的性能,安装操作码caching; 但理想的解决scheme是将您的PHP升级到5.5版本或更高版本,因为新版本默认情况下具有操作码caching,称为Zend Optimiser,比其他版本的性能更好http://massivescale.blogspot.com/2013/06 /php-55-zend-optimiser-opcache-vs-xcache.html 。