apc_sma_info() は、1 つの興味深い情報を提供します。これにより、なぜこのようなことが起こるのかを説明できる可能性があります。
シリアル化されていないデータで apc_store() を実行すると、block_listsインデックスに次の値が生成されます。
Array
(
[0] => Array
(
[size] => 608
[offset] => 33152
)
[1] => Array
(
[size] => 5589032
[offset] => 11211992
)
[2] => Array
(
[size] => 2175976
[offset] => 31378408
)
)
それらを手動でシリアル化すると、次が生成されます。
Array
(
[0] => Array
(
[size] => 11178232
[offset] => 33760
)
[1] => Array
(
[size] => 1210040
[offset] => 16801024
)
[2] => Array
(
[size] => 15542104
[offset] => 18012280
)
)
不思議なことに、手動のシリアライゼーションでは、APC はデータの最初と最後の断片をより大きなブロックに分割し、コンテンツの配置を改善しているようです。
このテストを数回実行し、毎回同様の結果が得られたため、些細なことではないようです。