3

背景故事

我维护了一系列(网络)应用程序,它们都使用一个大型的本土 PHP 库。其中一些应用程序是员工使用的传统桌面应用程序,但其他应用程序(也与这个问题更相关)是 PHP 网站,随着受欢迎程度的持续增长,性能正成为一个更重要的问题。

当前的 PHP 缓存方法

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

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

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

PHP中的函数波动率

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

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

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

这样的事情存在吗?我一直无法在市场上找到任何类似的东西。是否有任何其他可能对我的情况有益的性能改进方法?

4

1 回答 1

1

我会说您将 php 应用程序视为 Web 应用程序并实现了多个级别的缓存。

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

然后我建议在视图级别缓存 Smarty 缓存和缓存代理,如SquidVarnish

于 2012-11-19T13:05:56.083 回答