2008-08-16 65 views
16

有没有人有使用PHP加速器的经验,如MMCacheZend Accelerator?我想知道,如果使用这两种方法中的任何一种,PHP都可以比得上更快的网络技术。另外,是否有权利使用这些?编译PHP?

+2

您应该将标题更改为“加速PHP”。尽管关于编译PHP有许多问题,但这完全不是关于编译器的。 – 2009-09-26 13:15:39

回答

13

请注意,Zend Optimizer和MMCache(或类似的应用程序)是完全不同的东西。虽然Zend Optimizer试图优化程序操作码,但MMCache会将脚本缓存在内存中并重新使用预编译的代码。

我做了一些基准,前一段时间,你可以找到在我的博客中results(德国虽然)。基本结果如下:

Zend Optimizer本身并没有帮助。其实我的脚本比没有优化器慢。

当涉及到缓存: *最快:eAccelerator * XCache * APC

和:你想安装一个操作码缓存!

例如: alt text http://blogs.interdose.com/dominik/wp-content/uploads/2008/04/opcode_wordpress.png

这是它采取调用WordPress的主页10.000倍的时间。

编辑: BTW,eAccelerator本身包含一个优化器。

2

根据所执行的有多少你的PHP代码的实际执行和需要多长时间他们可以是一个真正的大胜利。它当然不会受到伤害,但是你看到的收益将取决于你的时间在哪里。

BTW mmcache已经被卷成不同的项目现在,名字我忘了,但谷歌会告诉你。

3

两者都很有趣,并且会提供速度提升,因为它们将源代码编译为二进制表示,然后由PHP引擎执行。

任何巨大的网站使用PHP(脸谱例如)运行在运行某种操作码缓存系统,如MMCache的。

问题是,根据您的系统,它们不是很容易设置。

0

你检查过Phalanger吗?它将PHP编译为.NET代码。这里有some benchmarks这表明它可以显着提高性能。

+0

进一步基准:http://www.php-compiler.net/benchmarks – Eldros 2011-09-15 12:05:44

0

我在当天使用了Zend Accelerator(2004-ish)。它肯定在它可以使用的代码上获得了一些重要的性能胜利,但是不幸的是我使用的系统经常动态地加载代码然后对它进行评估,Zend Accelerator当时无法做很多事情(和我一样, d猜猜还是不行)。

不利的一面是,我们当然看到了一些缓存问题(这里的代码会改变,但与一个或其他原因更改的编译版本同步)。我想现在可能已经解决了这些问题。

反正我没有任何硬比较数字,肯定没有写在不同的环境相同的系统进行比较,但对于绝大多数的系统,PHP是不会杀你明智的性能。

2

我在我的生产服务器上使用APC,开箱即可使用。编译并将其添加到PHP中,并没有太多的调整。我每隔一段时间检查一次,只是为了回顾统计数据,但由于我使用MVC,所有主要文件(路由器,控制器等)很少在每天的基础上进行更改,以便代码保持编译并且运行效率非常高。

1

目前我们使用apc,免费,只是一个简单的即插即用在我们的服务器上。为我们的网站提供了巨大的性能提升,特别是随着项目规模的增加。我也禁用了apc.stat,因此它不检查代码是否已更新,所以无论何时我们需要更新实时网站上的代码,我们都会重新启动apache。

1

我使用APC,并且可以证明,如果您保持高缓存命中率,它可以显着减少应用程序服务器上的CPU和I/O负载。它不仅可以避免你编译,而且可以让你不必从磁盘读取php文件。 (即字节码直接从主内存中提供,因此速度非常快)它降低了渲染单个页面的速度,并增加了服务器每秒可处理的请求。

如果您使用的RedHat或CentOS的,安装APC是超级简单:

yum install php-devel httpd-devel php-pear 
pecl install apc 
echo "extension=apc.so" > /etc/php.d/apc.ini 
# if you're using SELinux: 
chcon "system_u:object_r:textrel_shlib_t" /usr/lib/php/modules/apc.so 
/etc/init.d/httpd restart 

你问缺点。唯一的缺点是它需要一些内存。 APC上的默认值是30MB,但可以调整,并且一点点内存的成本超过了本身的速度和响应速度。

1

BlaM的测试包括WordPress所做的所有数据库调用。当您拨打更少的数据库电话时,您会发现操作码缓存的性能提升更加显着。

+0

同意。我也有其他一些测试。但我决定去“真实世界”的例子;) – BlaM 2009-05-19 08:16:14