Ce face gc_mem_caches
Managerul de memorie al PHP nu dă imediat înapoi sistemului memoria eliberată: o păstrează în rezervă, ca să o refolosească rapid. gc_mem_caches eliberează această rezervă. Este util doar în procese care rulează mult timp, după o operație care a folosit temporar foarte multă memorie.
Ce returnează
Numărul de octeți eliberați.
Exemple
Exemplul 1: După o operație mare
<?php
$mare = [];
for ($i = 0; $i < 200000; $i++) {
$mare[] = "rândul $i";
}
unset($mare);
$octeti = gc_mem_caches();
echo "Eliberat: " . round($octeti / 1024) . " KB";
Rezultat posibil (diferă la fiecare rulare)
Eliberat: 44 KB
Greșeli frecvente
- Confunzi această funcție cu
gc_collect_cycles.gc_mem_cachesnu caută referințe circulare; doar returnează sistemului memoria deja liberă.
Comenzi înrudite
gc_collect_cycles: Pornește imediat colectorul de referințe circulare și returnează câte valori a eliberat.gc_status: Returnează statistici despre colectorul de referințe circulare: de câte ori a rulat, câte valori a eliberat etc.