我使用apc来减少php文件的加载时间。我的文件加载非常快,除了一个文件,我定义了100多个数组。这个270 KB的文件需要200毫秒才能加载。其余的文件充满了对象、方法和函数。
我想知道:操作代码缓存对数组的效果不好吗?
我的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。
最佳答案
存储在缓存中时,所有阵列都需要serialized,然后从缓存加载时再次unserialised,这将耗费时间,并且可能是造成速度损失的重要因素。(供参考:Serialisation)
一种speed up serialisation位的方法是使用igbinary,igbinary可以通过在php.ini或apc上的ini文件中放置apc.serializer=igbinary
与apc无缝地一起使用。(注:这需要APC>=3.1.7)
您还可以将apc.stat(在同一个ini文件中)设为0,这样它只检查文件修改一次,而不是每次。
关于php - PHP APC-为什么加载缓存的数组操作码缓慢?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11302967/