1

我主要想知道访问APC v.memcached(不是操作码缓存)的对象缓存的速度差异是什么。memcached 的主要优点是它是分布式的并且不限于本地机器。但是,由于它是通过网络传输的,因此存在某种延迟。

我想知道访问 APC(在机器上)和 memcached(在另一台服务器上)之间的速度差异是否足够大,足以保证有一个分阶段的缓存方案,程序首先尝试 APC,然后是 memcached,最后是数据库,如果所有其他失败。

4

2 回答 2

1

像大多数其他事情一样:这取决于。

如果您有很多计算并且可以存储结果,那么缓存将加快速度。如果您基本上只是从数据库中存储行,那么在内存缓存中会有所帮助,但 memcached 与数据库相比可能不会增加大量差异(假设数据库查询都很简单)。另一方面,如果您正在执行复杂的查询,或者进行大量编程工作来创建某些内容,那么缓存就更有意义了。

举个例子,我最近在一个由第三方承包商编写的网站上工作,他在设计期间没有做任何性能工作。它像牛一样慢,因为它有很多未优化的包含等。添加 APC 基本上将性能提高了 10 倍。添加 memached 可将加载时间减少 10 - 20 毫秒。

如果你已经足够远,那么做一些性能测试(查找 xdebug 或其他工具)并查看你的瓶颈在哪里,然后做出相应的计划。

于 2012-08-15T18:26:11.380 回答
0

请记住,如果您用其他东西填满了 APC 缓存,那么 APC 将不得不再次为您的页面重新计算操作码。如果页面不断删除对象,这可能会导致问题,然后一旦页面运行,对象就会继续删除页面。不好玩。

请注意安全,不要试图将 APC 用于除配置值之外的任何内容,这不会导致您的页面被删除以腾出空间。

TL;DR 一旦 APC 装满,您的网站将变慢,您的服务器将更加努力地工作。

于 2012-08-15T18:18:26.517 回答