Avatar billede madsmm Nybegynder
20. juli 2004 - 12:49 Der 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 ?
Avatar billede Slettet bruger
20. juli 2004 - 12:51 #1
da jeg fik den fejl var det en fejl i min kode :D
Avatar billede madsmm Nybegynder
20. juli 2004 - 12:53 #2
ok, men det er jo ikke nemt at se, hvor der evt skulle være fejl!
Avatar billede terrak Nybegynder
20. juli 2004 - 12:54 #3
Du kunne vel ikke smide koden ind, eller linke til en txt fil med koden, hvis den er meget stor? :)
Avatar billede Slettet bruger
20. juli 2004 - 12:54 #4
nej, hvis det er en fejl kan du kun tænke tilbage på hvornår den kom, ellers kan det jo være at du har en mega krævende kode
Avatar billede madsmm Nybegynder
20. juli 2004 - 12:56 #5
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å ??
Avatar billede madsmm Nybegynder
20. juli 2004 - 12:57 #6
abre = bare
Avatar billede terrak Nybegynder
20. juli 2004 - 13:00 #7
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?
Avatar billede stingbat Nybegynder
20. juli 2004 - 13:02 #8
Er det bare mig, eller virker der et eller andet helt galt?
270112 bytes < 83886080 bytes ikke? ;-)

Dermed lyder det ikke til, at du har allokeret for meget, men mere en fejl. Hvad skal du da også lave, som vil benytte så meget hukommelse?
Avatar billede madsmm Nybegynder
20. juli 2004 - 13:07 #9
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" ?
Avatar billede terrak Nybegynder
20. juli 2004 - 13:08 #10
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)
Avatar billede stingbat Nybegynder
20. juli 2004 - 13:28 #11
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 ;)
Avatar billede coderdk Praktikant
21. juli 2004 - 03:25 #12
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.
Avatar billede coderdk Praktikant
21. juli 2004 - 03:25 #13
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 :)
Avatar billede madsmm Nybegynder
09. marts 2005 - 13:27 #14
.
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester