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