有没有人有使用 PHP 加速器的经验,例如 MM缓存 或者 Zend 加速器?我想知道使用其中任何一个是否可以使 PHP 与 快点 网络技术。另外,使用这些是否需要权衡?

有帮助吗?

解决方案

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

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

仅靠 Zend Optimizer 根本没有帮助。实际上,我的脚本比没有优化器的脚本要慢。

当谈到缓存时:* 最快的: 电子加速器 * X缓存 * APC

和:您确实想安装操作码缓存!

例如:替代文本 http://blogs.interdose.com/dominik/wp-content/uploads/2008/04/opcode_wordpress.png

这是调用 wordpress 主页 10.000 次所需的持续时间。

编辑: 顺便说一句,eAccelerator 本身包含一个优化器。

其他提示

MMCache 已被弃用。我推荐 http://pecl.php.net/package/APC 或者 http://xcache.lighttpd.net/, ,两者都为您提供可变存储(如 Memcache)。

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

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

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

根据实际执行的 PHP 代码量以及执行所需的时间,它们可能是一个巨大的胜利。这当然不会有什么坏处,但你看到的收获很大程度上取决于你目前的时间花在哪里。

顺便说一句,mmcache 现在已经被整合到另一个项目中,我忘记了名字,但 Google 会告诉你。

我在生产服务器上使用 APC,它开箱即用,运行良好。编译它并将其添加到 PHP 中,无需进行太多调整。我偶尔检查一次只是为了查看统计信息,但由于我使用 MVC,所以所有主要文件(路由器、控制器等)很少每天发生变化,因此代码保持编译状态并运行得非常高效。

目前我们使用免费的 apc,并且在我们的实时服务器上只是简单的即插即用。为我们的网站提供了巨大的性能提升,尤其是随着项目规模的增加。我还禁用了 apc.stat,因此它不会检查代码是否已更新,因此每当我们需要更新实时站点上的代码时,我们都会重新启动 apache。

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

如果您使用 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,但可以调整,随着速度和响应率的提高,一点点内存的成本会物有所值。

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

我以前使用过 Zend Accelerator(2004 年左右)。它确实在它可以使用的代码上带来了一些显着的性能提升,但不幸的是,我使用的系统被设计为经常动态加载代码,然后评估它,Zend Accelerator 当时无法做太多事情(而且我'我猜还是不能)。

不利的一面是,我们确实看到了一些缓存问题(其中代码会发生更改,但编译版本由于某种原因与更改同步)。我想这些问题现在可能已经解决了。

无论如何,我没有任何硬性的比较数字,当然也没有在不同的环境中编写相同的系统进行比较,但对于绝大多数系统来说,PHP 不会在性能方面杀死你。

你检查过法兰格吗?它将 PHP 编译为 .NET 代码。这里有 一些基准 这表明它可以显着提高性能。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top