背景故事
我维护了一系列(web)应用程序,这些应用程序都使用大型本地PHP库。其中一些应用程序是员工使用的传统桌面应用程序,但其他应用程序(与此问题也更相关)是PHP网站,随着受欢迎程度的不断提高,性能变得越来越重要。
当前的PHP缓存方法
为了加快我们的某个网站(它是一个商店,将其视为thinkgeek.com),我使用memcached来缓存不需要不断动态构建的网站的某些部分(例如产品)列出某个类别。)
我们还使用几乎所有出厂默认的APC安装作为OPCode缓存。
这两种方法都对网站的性能带来了显着的改善,但我非常希望在优化的道路上走得更远。
PHP中的函数波动
我自己来自数据库背景,我非常喜欢PostgreSQL,例如,使用function volatility来获得巨大的性能提升,同时保持可靠和准确的结果。
我的问题是,是否有任何PHP扩展允许开发人员将某些函数(或类方法)标记为IMMUTABLE
?(意味着该函数的结果始终是同样,当给出相同的输入参数时)。然后,这个缓存扩展可以缓存该函数的结果,这会在使用大型代码库时产生巨大的性能提升。
一个简单的例子是SomeClass::getWebsiteFooter();
这样的方法,它返回一些始终相同的HTML代码,除非网站被更改(在这种情况下,缓存将被刷新)。
这样的事情存在吗?我无法在市场上找到任何类似的东西。是否还有其他方法可以改善我的情况?
答案 0 :(得分:1)
我想说你已经将php应用程序看作是一个Web应用程序并实现了几个级别的缓存。
IMMUTABLE方法 - 我认为不是好方法。在数据库级别,应用程序级别(memcached)上使用缓存是一个良好的开端。
然后我建议在视图级Smarty caching上缓存并缓存代理,例如Squid或Varnish