APCu este un magazin cheie-valoare in-memory pentru PHP. Cheile sunt de tip șir și valorile pot fi orice variabile PHP. APCu acceptă doar stocarea în cache a variabilelor în zona utilizatorului.
Cache-ul APCu este per-proces pe Windows, așa că atunci când utilizați un SAPI bazat pe proces, acesta nu va fi partajat între diferite procese.
APCu este APC lipsit de cache opcode.
Prima bază de cod APCu a fost versiunea 4.0.0, bifurcată de la ramura master APC la acea vreme. Suportul PHP 7 este disponibil începând cu APCu 5.0.0. Suportul PHP 8 este disponibil începând cu APCu 5.1.19.
Instalare/Configurare
Cerințe
Nu sunt necesare biblioteci externe pentru a construi această extensie.
Instalare
Informații pentru instalarea acestei extensii PECL pot fi găsite în capitolul manualului intitulat Instalarea extensiilor PECL. Informații suplimentare, cum ar fi noile versiuni, descărcări, fișiere sursă, informații despre întreținător și un CHANGELOG, pot fi găsite aici: » https://pecl.php.net/package/apcu.
Sfat
PHP 7 are un modul separat (» apcu-bc) pentru compatibilitatea cu APC.
În modul de retrocompatibilitate, APCu înregistrează funcțiile APC aplicabile cu prototipuri retrocompatibile.
În cazul în care o funcție APC a acceptat cache_type
, este pur și simplu ignorată de versiunea retrocompatibilă, și omisă din prototip pentru versiunea APCu.
Avertisment
Începând cu PHP 8.0.0, apcu-bc nu mai este suportat.
Notă: Pe Windows, APCu are nevoie de o cale temporară pentru a exista și să poată fi scrisă de serverul web. Verifică variabilele de mediu TMP, TEMP și USERPROFILE în această ordine și în cele din urmă încearcă directorul WINDOWS dacă niciuna dintre acestea nu este setată.
Notă: pentru detalii de implementare mai aprofundate și foarte tehnice, consultați » fișierul TECHNOTES furnizat de dezvoltator .
Sursele APCu pot fi găsite » aici.
Configurare runtime
Comportamentul acestor funcții este afectat de setările din php.ini.
Deși setările implicite APCu sunt bune pentru multe instalări, utilizatorii serioși ar trebui să ia în considerare reglarea următorilor parametri.
Există o decizie de luat la configurarea APCu. Câtă memorie va fi alocată APCu. Directiva ini care controlează acest lucru este
Citiți cu atenție secțiunile despre aceasta mai jos.
apc.shm_size
Odată ce serverul rulează, scriptul apc.php
care este inclus cu extensia ar trebui copiat undeva în docroot și vizualizat cu un browser, deoarece oferă o analiză detaliată a funcționării interne a APCu. Dacă GD este activat în PHP, va afișa chiar și câteva grafice interesante.
Dacă APCu funcționează, numărul Cache full count
(în stânga) va afișa numărul de ori în care memoria cache a atins capacitatea maximă și a fost nevoită să elimine intrările pentru a elibera memorie. În timpul evacuarii, dacă a fost specificat apc.ttl
, APCu va încerca mai întâi să elimine intrările expirate, adică intrările al căror TTL fie a expirat, fie intrările care nu au TTL setat și nu au fost accesate în ultimele apc.ttl
secunde. Dacă apc.ttl
nu a fost setat sau dacă eliminarea intrărilor expirate nu a eliberat suficient spațiu, APCu va șterge întregul cache.
Numărul de evacuări ar trebui să fie minim într-un cache bine configurat. Dacă memoria cache este în mod constant umplută și, astfel, eliberată forțat, agitația rezultată va avea efecte negative asupra performanței scriptului. Cel mai simplu mod de a minimiza acest număr este să alocați mai multă memorie pentru APCu.
Când APCu este compilat cu suport mmap (Memory Mapping), acesta va folosi un singur segment de memorie, spre deosebire de când APCu este construit cu suport SHM (SysV Shared Memory) care utilizează mai multe segmente de memorie. MMAP nu are o limită maximă așa cum o face SHM în
. În general, suportul MMAP este recomandat deoarece va recupera mai repede memoria atunci când serverul web este repornit și, în general, reduce impactul alocării memoriei la pornire.
/proc/sys/kernel/shmmax
Sursa: PHP Manual, licența CC BY 3.0. Traducere și adaptare: Nicolae Sfetcu
Lasă un răspuns