【发布时间】:2009-06-17 14:33:47
【问题描述】:
在磁盘上缓存 PHP 对象和不缓存有区别吗?如果缓存,对象只会为所有站点访问者创建一次,如果没有,它们将为每个访问者创建一次。这有性能差异还是我会浪费时间这样做?谢谢你:)
【问题讨论】:
-
感谢那些已经回答的人,但这里有更多关于我在做什么的信息。 APC 现在不可用,因为我是在 windows 平台上开发的,所以我还没有为 APC 开发缓存方法。对于 Windows,我决定缓存到文件而不是 memcached,因为 memcached 需要我安装一些额外的文件,这是我不希望我的程序需要的。至于我缓存的原因,我将缓存访问者在浏览网站时将使用的对象,一个示例是数据库类。 (续)
-
我计划使用 __sleep 和 __wake 魔术函数来正确序列化和反序列化数据库对象。我还计划缓存模板、错误处理类等对象,因为所有访问该站点的用户都需要这些对象。知道了这一点,缓存对这些对象会更好吗?
-
为什么不将它们存储在 PHP 会话中?
-
我也在考虑这个问题,但是将它们存储在 PHP 会话中意味着必须在每个用户的会话中为每个用户存储一个 PHP 对象。我想知道的是,为每个用户创建对象比缓存对象更好,这样所有用户都可以使用该对象的一个实例,反之亦然。
-
呃。取决于对象。如果可以共享一个实例,那么您可以节省存储空间……但这取决于用户是否更改了对象。您将读取/写入创建瓶颈的对象。如果没有更多信息,您将不得不在此处查找理论。