20. juli 2004 - 12:49Der er
13 kommentarer og 1 løsning
Allowed memory size of
Hejsa,
Jeg er begyndt at få nogen fejl i min php hvor jeg har flyttet en masse kode ind i en function, så jeg kan bruge det flere steder, men efterfølgende er jeg begyndt at få følgende fejl :
<b>Fatal error</b>: Allowed memory size of 83886080 bytes exhausted (tried to allocate 270112 bytes) in ... osv.
Kan de ting hænge sammen, og hvor meget kan man forvente at php skal bruge ?
memmory_limit er sat til 80MB
Hvor meget kan man sætte den op til på en maskine med 2GB ? Og hvad er forsvarligt ?
Det er vist abre en meget krævende kode, da den kører fint igennem hvis jeg smider noget limit på den data jeg skal behandle.
Og nej jeg har desværre ikke "lov" til at smide koden ind her.. men er der nogen der ved hvor meget man kan bruge forsvarligt, altså hvad jeg skal sætte memory_limit på ??
Hvis det er en server der udelukkende kører som webserver og ikke andet, skulle der i princippet ikke være noget i vejen for at bruge rammene fuldt ud?
jeg genererer en meget stor xmlfil. Men det er bare mærkeligt at det sker netop som jeg har smidt de største dele af koden ind i en function. Kan det have indflydelse eller er det noget helt andet.
Jeg mener: Bruger php mere ram på at execute kode i en function end "normalt" ?
Det eneste jeg kan komme i tanke om, der ville snuppe så meget hukommelse, er når man arbejder med image funktionerne i PHP :)
Sådan som jeg læser fejlmeddelelsen, er nogle af de 80MB, som scriptet har fået tildelt, der ikke. Kunne en anden process stjæle al hukommelsen? (Det lyder dog ikke specielt sandsynligt)
Nu er det svært at sige præcis, hvad der kan foresage det - for kan jo skyldes en bug, enten i din egen kode, eller i selve PHP - eller en blanding af begge :)
Men lyder vildt - og 80 MB, burde da være rigeligt, til de flestes behov ;)
Er du sikker på at du ikke har en funktion (evt. rekursiv) der æder alle resourcer? Den fejl opstår (selvom fejlmeddelelsen er lidt spøjs) når et script har brugt _meget_ hukommelse.
80MB er liiiige lovligt vildt. Jeg ville sætte den til MAX 32MB, 16MB burde være nok til de krævende, og til almindeligt brug er de 8MB standard fint :)
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.