przykład:Powtarzanie serii APC?
$arr = array();
for($i = 5; $i < 300000; $i++)
$arr[$i] = 'foo';
apc_store('data', $arr);
zajmuje jak 15 sekund. Aby uzyskać dane, zajmuje to około 0,7 s.
Ale jeśli serializuje dane za pomocą php i przechowuję je w ten sposób z apc_store('data', serialize($arr));
, zajmuje to tylko 1 sekundę.
Aby uzyskać dane odcinkach, a następnie unserialize go, to zajmuje trochę więcej niż 0.6S
Dlaczego APC tak wolno?
'apc_store()' uruchamia funkcję '__sleep()', prawda? Jeśli to prawda, to [funkcja jest uruchamiana przed serializacją] (http://php.net/manual/en/oop4.magic-functions.php). Może to zmniejsza wydajność. To również brzmi jak 'apc_store()' nadpisuje istniejące wpisy ... przyznane wciąż uczę się PHP, więc mogłem być daleko. – Rob
@MikeDtrick: APC nie używa serializacji. Po prostu kopiuje całą strukturę 'zval' (na poziomie C). – Crozin
@ Crozin Czekaj, co? Czy chodzi o 'apc_store()' wyzwalające '__sleep()'? Czy to jest nieprawidłowe? – Rob