PHP Fatal error: Allowed memory size of 33554432 bytes exhausted

PHP Fatal error: Allowed memory size of 33554432 bytes exhausted

Aceasta este o eroare care pare sa puna la incercare multi coderi php incepatori, asa ca dupa ce am raspuns de mai multe ori la aceasta intrebare pe forumuri m-am gandit sa scriu acest post pentru ca data viitoare sa dau acest link fara sa mai scriu aceasi explicatie din nou, sau poate doamne ajuta o sa caute pe google si o sa gaseasca aceasta pagina.

Mai intai sa intelegem de ce aparea aceasta eroare, daca nu v-ati dat seama din titlu, ea apare fiindca scriptul tau foloseste mai multa memorie decat e alocat in mod normal unui script php. Aceasta se intampla din cateva motive pe care le voi enumera acum :

  • Output-ul scriptului tau ( HTML ) este prea mare ( se intampla destul de rar )
  • scriptul foloseste memoria peste limita datorita varaibilelor folosite sau cererilor facute ( variabile POST FILES etc. – cea mai frecventa cauza )
  • Exista un bug in scriptul tau care face ca scriptul sa consume asa de multa memorie

Acum nu trebuie sa te sperii, nu este o eroare asa de grava si poate fi remediata chiar foarte usor deobicei. Pentru a rezolva problema poti incerca ormatoarele :

  • sa optimizezi scriptul ca sa nu mai manance atata memorie ( destul de logic nu ? )
  • sa cauti eventualele bug-uri care ar putea cauza folosirea excesiva a memoriei
  • sa minimizezi output-ul scriptului
  • sa maresti varaibila de configurare php memory_limit fie in php.ini ( daca ai acces ) sau chiar in scriptul php folosind functia ini_set() ( ex: ini_set(‘memory_limit’,’32MB’); )

Limita default de 8MB a fost implementata in php pentru a opri scripturile de a rula atunci cand incep sa consume o cantitate de memorie prea mare din memoria totala a serverului, lucru care daca ar fi lasat sa continue ar putea cauza caderea serverului. Metoda cea mai buna de a corecta aceasta eroare ar fi de a optimiza scriptul php si a cauta eventulele bug-uri, decat de a mari limita de memorie metoda intradevar mai usoara si adoptata de foarte multi coderi ( desigur sunt si cazuri cand aceasta este singura solutie ) .

Sper ca acest articol v-a fost de ajutor si astept comentariile voastre.

Share your love
Gabriel Solomon
Gabriel Solomon

Ultramaratonist, Galantom, organizator de evenimente sportive

Articles: 1264

4 Comments

  1. eu folosesc wordpress si imi apare eroare cand instalez un plugin mai complex, tot asa am un cont share, sti cumva unde dau de ini_set() ? sau ar fi mai bine sa vorbesc direct cu tipul de la host?

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.