FAQ |
Kalender |
![]() |
#1 | ||
|
|||
Mycket flitig postare
|
Hej !
Skall skala om bilder i GD, men servern storknade (ingen output från PHP, inga felmeddelanden etc.), däremot felmeddelande på serverns terminal om att minnet var slut och PHP och MySql fick avslutas... Har iofs bara 256MB i den än så länge (har beställt mer...) Sedan när det blir dags att lansera sajten, antar jag att det kan bli svårt att få nåt webbhotell som tillåter denna minnesanvändning. Sajten hanterar bilder (stora bilder), skapar tumnaglar och förhandsgranskningar. Ovanstående problem uppstod när jag laddade upp en 9-megapixel JPEG (3488x2616, ca 5MB). Hittade i en annan tråd att en sådan bild tar upp en del ( > 50 MB ? ) i minneskapacitet under tiden den behandlas... Skall jag skriva skriva koden så att PHP bara hanterar en bild i taget, med typ en lock-file eller nåt. Hur skal jag tänka? Kanske är för stort för mig ![]() |
||
![]() |
![]() |
![]() |
#2 | ||
|
|||
Mycket flitig postare
|
Ta och kolla vad inställningen memory_limit är i PHP. Kvittar hur mycket minne du har i burken om du inte ändrar limiten.
Jag brukar använda mig av ImageMagick för att skapa resiza bilder. Möjligt att den använder lika mycket minne men man slipper i alla fall gränsen som är satt i PHP. Och sen i de tester jag gjort så har resizningen blivit bättre och mindre filstorlek. Lite mer varför det behövs så mycket minne: http://qdig.sourceforge.net/Support/AllowedMemorySize |
||
![]() |
![]() |
![]() |
#3 | ||
|
|||
Mycket flitig postare
|
Självklart har jag tänkt på det. Dels så har jag memory_limit på fruktansvärt högt, och sen kör jag ini_set('memory_limit',-1); i skriptet så det är inte PHP som begränsar. Jag har även kört diverse minnestester, och kommit fram till att det fysiska minnet verkligen är slut. Mer minne komer på posten snart, så jag kan dubbelkolla, men jag är 99,9%säker på att det är minnesbrist.
Citat:
|
||
![]() |
![]() |
![]() |
#4 | ||
|
|||
Mycket flitig postare
|
Nu förstår jag varför PHP dör
![]() Men min fråga kvarstår: Skall jag begränsa antalet samtidiga "bildändringar" så att PHP bara ändrar storlek på en bild åt gången. Skall även kolla på ImageMagick. |
||
![]() |
![]() |
![]() |
#5 | ||
|
|||
Flitig postare
|
Eventuellt kanske burken beter sig annorlunda om du kör exempelvis imagemagick "utanför scriptet" istället för att använda php modulen.
Du hade kunnat testa att låta php dra igång imagemagick på kommandoraden med shell_exec('nice <nicenivå> imagemagick...'); och se om burken beter sig annorlunda då. |
||
![]() |
![]() |
![]() |
#6 | ||
|
|||
Mycket flitig postare
|
Tack. Jag har fått det att funka nu, men skall ändå överväga ImageMagick.
|
||
![]() |
![]() |
Svara |
|
|