PHP性能(操作码缓存/函数波动)

时间:2012-11-19 12:56:24

标签: php caching immutability opcode-cache

背景故事

我维护了一系列(web)应用程序,这些应用程序都使用大型本地PHP库。其中一些应用程序是员工使用的传统桌面应用程序,但其他应用程序(与此问题也更相关)是PHP网站,随着受欢迎程度的不断提高,性能变得越来越重要。

当前的PHP缓存方法

为了加快我们的某个网站(它是一个商店,将其视为thinkgeek.com),我使用memcached来缓存不需要不断动态构建的网站的某些部分(例如产品)列出某个类别。)

我们还使用几乎所有出厂默认的APC安装作为OPCode缓存。

这两种方法都对网站的性能带来了显着的改善,但我非常希望在优化的道路上走得更远。

PHP中的函数波动

我自己来自数据库背景,我非常喜欢PostgreSQL,例如,使用function volatility来获得巨大的性能提升,同时保持可靠和准确的结果。

我的问题是,是否有任何PHP扩展允许开发人员将某些函数(或类方法)标记为IMMUTABLE(意味着该函数的结果始终是同样,当给出相同的输入参数时)。然后,这个缓存扩展可以缓存该函数的结果,这会在使用大型代码库时产生巨大的性能提升。

一个简单的例子是SomeClass::getWebsiteFooter();这样的方法,它返回一些始终相同的HTML代码,除非网站被更改(在这种情况下,缓存将被刷新)。

这样的事情存在吗?我无法在市场上找到任何类似的东西。是否还有其他方法可以改善我的情况?

1 个答案:

答案 0 :(得分:1)

我想说你已经将php应用程序看作是一个Web应用程序并实现了几个级别的缓存。

IMMUTABLE方法 - 我认为不是好方法。在数据库级别,应用程序级别(memcached)上使用缓存是一个良好的开端。

然后我建议在视图级Smarty caching上缓存并缓存代理,例如SquidVarnish