6
$arr = array();
for($i = 5; $i < 300000; $i++)
$arr[$i] = 'foo';
apc_store('data', $arr);
それは、15秒のようになります。データを取得するには、約0.7秒かかります。
私はPHPでデータをシリアル化し、apc_store('data', serialize($arr));
でそれを保存すると1秒しかかかりません。
シリアライズされたデータを取得し、それをアンシリアライズするには、それは少しより0.6秒
なぜAPCはとても遅いですがかかりますか?
'apc_store()'は '__sleep()'関数をトリガします。それが本当であれば、[関数はシリアル化の前に実行されます](http://php.net/manual/en/oop4.magic-functions.php)。多分効率が低下するでしょう。 'apc_store()'が既存のエントリを上書きするようにも聞こえます...私はまだPHPを学んでいますので、途方もないかもしれません。 – Rob
@MikeDtrick:APCはシリアル化を使用しません。 'zval'構造体全体を(Cレベルで)コピーするだけです。 – Crozin
@クロジン待って、何?これは '__sleep()'を起動する 'apc_store()'に関してですか?それは間違っていますか? – Rob