Mailinglisten-Archive |
Hallo Patrick, > Tim Hildebrandt wrote: > > > 2. Weiß jemand, wie man zur Laufzeit die benötigte > Speichermenge messen > > kann? Ich würde gerne rausfinden, woran genau es scheitert. > > http://php.net/memory_get_usage Ah klasse. Werde ich mir heute Nachmittag mal zu Gemüte führen... ;-) > das problem scheint es öfter zu geben. wie aktuell ist denn > dein php bzw deine gdlib? Recht aktuell. Wir haben auf jeden Fall die Version, die nach dem Fall des GIF-Patentes die Berechnung dieser Bilder wieder zuläßt. Versionsnummer hab ich aber gerade nicht im Kopf. > jedenfalls werden alle formate intern in's gd format verwandelt > welches um einiges größer ist, aber schneller zu verarbeiten. > testweise könntest du ein bild in einem dieser formate speichern > um zu sehen wie groß diese im speicher sind: > http://de2.php.net/imagegd > http://de2.php.net/imagegd2 Das ist auch eine super Idee. Dann kann man wenigstens mal *sehen*, wie viel Speicher gebraucht wird. Ggf. könnte man auch hingehen und eine Reihe verschiedener Bilder in unterschiedlichen Ausgangsgrößen auf den Server legen und testweise mal in das imagegd(2) Format umwandeln, danach die Dateigröße der Zieldatei errechnen lassen und in eine Tabelle tippen. Ich glaube, ich mach das am Wochenende mal und werde das dann hier noch mal posten. Einfach, um mal ein Gefühl dafür zu bekommen, wie *weit* man gehen kann... Was mich mal in diesem Zusammenhang noch interessieren würde ist die Frage, ob man z.B: beim JPG-Format die Komprimierungsstufe beim Öffnen des Bildes herausfinden (lassen) kann. > ich habe mal ein komisches problem festgestellt. bilder die ich > bearbeite und speichere und direkt im browser via img-tag ausgebe > werden teilweise nicht komplett angezeigt. daher ist meine vermutung > das die gdlib intern asynchron arbeitet. > versuche doch mal der gdlib ein wenig ruhe mit der sleep() funktion > zu verschaffen. OK werde ich machen. Im Übrigen ergibt sich momentan noch ein anderes witziges Problem mit dem Bild-Upload: Mittlerweile bin ich gar nicht mehr so sicher, ob es sich tatsächlich um einen Speicherüberlauf dreht. Der o.g. Fehler tritt bei einem unserer Kunden auf. Wir arbeiten mit "korrespondierenden Frames", was bedeutet, dass die Ergebnisse von Formularen in einen versteckten 0-Frame geladen werden. Beim Bildupload sieht das dann so aus, dass vor dem Absenden des Formulars ein DIV gezeigt wird, in dem eine kleine animierte GIF-Grafik den Upload-Vorgang anzeigt. Die tatsächliche Fehlermeldung (Sprich den PHP-Code des Speicherüberlaufs) bekommt der Kunde bestenfalls nie zu Gesicht. ABER: Die animierte Grafik kann nicht mehr abgeschaltet werden, da die notwendigen JavaScript-Reaktionen im versteckten Frame nicht mehr ausgegeben werden. In diesem Falle funktioniert ein Upload und die Berechnung eines 67kB großen Bildes beim Kunden *nicht*, bei uns aber sehr wohl! Das bedeutet, dass das Formular (und damit das Bild) vielleicht gar nicht korrekt auf unserem Server ankommt. Sprich: Ein Lokales Problem z.B: mit dem Netzwerk/der Firewall beim Kunden...? Ich cheke das morgen vorort und werde dann noch mal was dazu schreiben. Grüße Tim
php::bar PHP Wiki - Listenarchive