【发布时间】:2012-07-03 00:26:18
【问题描述】:
我正在使用 APC 来减少我的 PHP 文件的加载时间。我的文件加载速度非常快,除了一个我定义了 100 多个数组的文件。这个 270 kb 的文件需要 200 毫秒才能加载。其余的文件充满了对象、方法和函数。
我想知道:OP 代码缓存是否不适用于数组?
我的 APC 缓存应该足够大以处理我的所有类。目前我 40% 的缓存是免费的。我的命中率是 99%。
apc.shm_size=32 M
apc.max_file_size = 1M
apc.shm_segments= 1
APC 3.1.6
我正在使用 PHP 5.2、Apache 2 和 Windows Vista。
【问题讨论】:
-
您的意思是硬编码数组,如城市列表、邮政编码等?
-
我不得不问,为什么每次请求都加载 270 kB 的数组?将这些内容保存在数据库中,或者至少将其拆分为多个类文件并使用自动加载器按需加载它们。
-
我可能应该使用多个文件。我没有将它放入数据库,因为我的 mysql 服务器和 Web 服务器位于不同的计算机上,并且有 35 毫秒的 ping 时间。很多文件是美国 3000 个县的数组。但有趣的是,最大的数组加载时间并不长。所以我可以把它分成更小的文件,但是知道它们什么时候需要加载是很困难的。
-
更新:加载大县数组 (180 kb) 需要 4 毫秒。其余常量 (90 kb) 需要 196 毫秒才能加载。
-
更新:问题在于使用 gettext 库翻译所有内容。当我摆脱大约 1000 个函数调用时,加载时间减少到 6 毫秒。
标签: php apc opcode-cache