2016-02-15 77 views
1

我正在运行PHP 5.3.5版本并在Codeigniter 2.1.3中开发网站 我现在正在努力提高网站性能,并且我发现缓存可以像APC一样使用或memcached或Zend OpCache。PHP APC-opecode缓存和基于文件的输出缓存

在codeigniter中我使用$this->output->cache(43829);进行缓存。

获得缓存的动作输出,并且在每个请求上返回相同的输出。 但我有动态页面,所以这种缓存将无法正常工作。我正在浏览APC如何用于开放代码缓存并用于提高网站性能。

APC是否将缓存中的opecode存储在缓存中,该缓存由zend引擎用于执行执行,而不是在每个请求上重新生成opecode?

附件是我的PHP APC配置 enter image description here

回答

0

输出得到缓存,并返回相同的输出在每次请求

虽然它比再生的网页加载速度,其仍然很不理想。在这种情况下最好使用缓存逆向代理。

我环顾四周APC如何用于OP [E] -code缓存

你的问题意味着,你认为你还没有使用操作码缓存。我建议你的第一个通话端口是查看它是否已经启用。您可以从phpinfo()的输出中查看此内容,或者查看function_exists('apc_sma_info');

APC不太可能用于未来版本的PHP。 ZOP +是目前与PHP 5.4+捆绑在一起的操作码缓存。它将与5.3一起工作,但需要一些努力。 Tim说5.3已经过时了,应该升级,这是正确的。

请注意,ZOP +还包含一个优化器(而且,更令人震惊的是,它似乎对许多框架的性能有重大影响)。 ZOP +的性能更依赖于APC中的缓存大小 - 但即使使用APC,错误地调整缓存大小也不会给出好的结果。

+0

添加PHP -APc配置细节,您正在使问题变得更糟。 APC已启用。我的配置是否正常? –

1

PHP 5.3是近2年过去生活的结束,APC不适用于当前的PHP版本。 Zend Opcache带有PHP 5.5+,它具有相同的功能。与其试图让您的网站使用旧技术,只需将您的服务器升级到当前(并且安全)的PHP版本就可以提高性能,而无需执行其他任何操作。行动

+0

Zend操作码缓存不等效。操作码缓存是相似的,但是(至少在我最后一次检查时)它不能用来存储任意值。在提供垃圾收集和内存压缩(这似乎相当愚蠢)之前,它不太可能实现这种数据缓存。 – symcbean

+0

当然,但是OP在他的问题中特别提到了操作码缓存。对于数据缓存,有很多选项(包括APCu)。 –

+0

我无法升级php版本。由于一些依赖性。 APC是否在执行之前缓存执行或操作码的输出? –