TweakPC

Zurück   Computer Hardware Forum - TweakPC > Games und Software > Programmiersprachen

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 27.09.2011, 13:26   #1 (permalink)
Overclocker
 
Benutzerbild von sofl
 

Registriert seit: 20.10.2005
Beiträge: 380

sofl wird schon bald berühmt werden

Standard [PHP] Merkwürdiger/Unberechtigter Speicherüberlauf im PHP-Skript

Hallo Gemeinde.

Ich erstelle derzeitig eine Image-Klasse für ein kommendes Projekt. Mein Problem hierbei ist das ich, wenn ich größere Images lade und bearbeite, ein Fehler entsteht aus welchem ich nicht schlau werde.

Hier ein Beispielskript bei welchem dieser ebenfalls entsteht.

PHP-Code:
$im=imagecreatefromjpeg('http://www.vodafone.is/images/thjonustusvaedi/Thjonustusvaedi_Vodafone_GSMog3G_2010feb.jpg');

$im imagerotate($im,45,0);

header('Content-type: image/jpeg');

imagejpeg($im);

imagedestroy($im); 
Das Ergebnis ist nicht wie gewünscht das um 45° gedrehte Bild, sondern folgender Fehler

Zitat:
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 7189 bytes) in C:\inetpub\wwwroot\uis\test.php on line 42
Merkwürdig hierbei finde ich das Mir gesagt wird das die erlaubte Speichermenge von 128MB, beim Versuch ~7KB zu reservieren, überschritten wurde.

Kann mir das jemand erklären oder eventuell eine Lösung/Workaround/Tipp geben ?

Danke.

sofl

Geändert von sofl (27.09.2011 um 14:46 Uhr)
sofl ist offline   Mit Zitat antworten
Alt 27.09.2011, 13:32   #2 (permalink)
Hardware Freak
 
Benutzerbild von poloniumium
 

Registriert seit: 23.03.2009
Beiträge: 10.310

poloniumium ist ein wunderbarer Anblickpoloniumium ist ein wunderbarer Anblickpoloniumium ist ein wunderbarer Anblickpoloniumium ist ein wunderbarer Anblickpoloniumium ist ein wunderbarer Anblickpoloniumium ist ein wunderbarer Anblickpoloniumium ist ein wunderbarer Anblick

Standard AW: [PHP] Merkwürdiger/Unberechtigter Speicherüberlauf im PHP-Skript

statt dass die datenmenge wirklich zu groß ist kann sowas auch an mangelnden schreibrechten liegen. dann ist bereits 1bit zu viel.
wär das ein ansatz?
450mm or bust!

Wenn Kritik nicht kritisch ist, ist sie zu kritisieren.
poloniumium ist offline   Mit Zitat antworten
Für diesen Beitrag bedankt sich:
sofl (27.09.2011)
Alt 27.09.2011, 13:38   #3 (permalink)
Overclocker
 
Benutzerbild von sofl
 

Registriert seit: 20.10.2005
Beiträge: 380

sofl wird schon bald berühmt werden

Standard AW: [PHP] Merkwürdiger/Unberechtigter Speicherüberlauf im PHP-Skript

Hallo poloniumium! Danke erst mal für die schnelle Antwort. Berichtige mich bitte wenn ich mich Irre aber ist das überhaupt möglich das man den Speicherbedarf "administrieren" kann ? Falls ja, dann müsste mir das Skript im Fehler ja die korrekte zugelassene Menge auch ausgeben. Außerdem tritt der Fehler ja auch nur bei exorbitant großen Bildern auf (3kx3k+).
sofl ist offline   Mit Zitat antworten
Alt 27.09.2011, 14:10   #4 (permalink)
Hardware Freak
 
Benutzerbild von Mother-Brain
 

Registriert seit: 19.01.2009
Beiträge: 10.754

Mother-Brain ist ein wunderbarer AnblickMother-Brain ist ein wunderbarer AnblickMother-Brain ist ein wunderbarer AnblickMother-Brain ist ein wunderbarer AnblickMother-Brain ist ein wunderbarer AnblickMother-Brain ist ein wunderbarer AnblickMother-Brain ist ein wunderbarer Anblick

Standard AW: [PHP] Merkwürdiger/Unberechtigter Speicherüberlauf im PHP-Skript

Mehr RAM einbauen und max_memory_size in der php.ini erhöhen

Sehr fieß ist auch die deklaration am Anfang:

ini_set('memory_limit', '-1');

Aber kommt halt drauf an, wie die php.ini aussieht, ob das funktioniert.

Achja, du solltest auch irgendwann deine Objekte wieder "nullen" sonst hat es nix mit dem File zu tun, sondern eher damit, dass alles "in Bereitschaft" gehalten wird... muss aber nicht unbedingt sein.

Zitat:
Your script is using too much memory. This can often happen in PHP if you have a loop that has run out of control and you are creating objects or adding to arrays on each pass of the loop.
Check for infinite loops.
If that isn't the problem, try and help out PHP by destroying objects that you are finished with by setting them to null. eg. $OldVar = null;
Check the code where the error actually happens as well. Would you expect that line to be allocating a massive amount of memory? If not, try and figure out what has gone wrong...
Mother-Brain ist offline   Mit Zitat antworten
Für diesen Beitrag bedankt sich:
sofl (27.09.2011)
Alt 27.09.2011, 14:59   #5 (permalink)
Overclocker
 
Benutzerbild von sofl
 

Registriert seit: 20.10.2005
Beiträge: 380

sofl wird schon bald berühmt werden

Standard AW: [PHP] Merkwürdiger/Unberechtigter Speicherüberlauf im PHP-Skript

Hey Mother Brain!

Mit ini_set/ini_get hab ich auch schon rumprobiert. ini_get gibt mir den korrekten Wert (128M) aus. Objekte Nullen usw. mag ganz nützlich sein. Allerdings tritt der Fehler ja auch bei dem simplen Skript (erster Post) auf.

EDIT:

Problem gelöst. Ich habe die Fehlermeldung mehr oder weniger falsch interpretiert. Darin steht nämlich nicht wie viel von den 128MB bereits verbraucht sind. Direkt nach dem Erstellen der Imageressource habe ich mir den derzeitigen Verbrauch mit memory_get_usage() ausgeben lassen und gesehen, dass schon über die Hälfte verbraucht war. Die ganze Transaktion funktionierte dann erst mit einem Limit von 1024MB.

ini_set('memory_limit','1024M');

Ich danke euch für die "Teilnahme"

sofl

Geändert von sofl (27.09.2011 um 15:10 Uhr)
sofl ist offline   Mit Zitat antworten
Alt 27.09.2011, 15:10   #6 (permalink)
Hardware Freak
 
Benutzerbild von Mother-Brain
 

Registriert seit: 19.01.2009
Beiträge: 10.754

Mother-Brain ist ein wunderbarer AnblickMother-Brain ist ein wunderbarer AnblickMother-Brain ist ein wunderbarer AnblickMother-Brain ist ein wunderbarer AnblickMother-Brain ist ein wunderbarer AnblickMother-Brain ist ein wunderbarer AnblickMother-Brain ist ein wunderbarer Anblick

Standard AW: [PHP] Merkwürdiger/Unberechtigter Speicherüberlauf im PHP-Skript

Wie gesagt nen

ini_set('memory_limit', '-1');

wäre auch des Rätsels-Lösung gewesen, weil du damit dann PHP allen RAM zur Verfügung stellst...

Ich selbst finde aber man sollte mit 128M locker hinkommen... aber das ist alles Subjektiv.
Mother-Brain ist offline   Mit Zitat antworten
Für diesen Beitrag bedankt sich:
sofl (27.09.2011)
Alt 27.09.2011, 15:40   #7 (permalink)
Overclocker
 
Benutzerbild von sofl
 

Registriert seit: 20.10.2005
Beiträge: 380

sofl wird schon bald berühmt werden

Standard AW: [PHP] Merkwürdiger/Unberechtigter Speicherüberlauf im PHP-Skript

Zitat:
Zitat von Mother-Brain Beitrag anzeigen
Wie gesagt nen

ini_set('memory_limit', '-1');

wäre auch des Rätsels-Lösung gewesen, weil du damit dann PHP allen RAM zur Verfügung stellst...

Ich selbst finde aber man sollte mit 128M locker hinkommen... aber das ist alles Subjektiv.
Dachte du meintest ich hätte versehentlich derartiges im Kopf meines Skripts platziert. Die Einstellung ist wirklich fantastisch! Mich würde allerdings interessieren was passiert wenn der tatsächlich verfügbare Speicher überläuft. Hattest du diesen Fall schon einmal?

sofl
sofl ist offline   Mit Zitat antworten
Alt 05.10.2011, 15:52   #8 (permalink)
Firmware Killer
 
Benutzerbild von Tweak-IT
 

Registriert seit: 11.03.2005
Beiträge: 4.361

Tweak-IT ist ein wunderbarer AnblickTweak-IT ist ein wunderbarer AnblickTweak-IT ist ein wunderbarer AnblickTweak-IT ist ein wunderbarer AnblickTweak-IT ist ein wunderbarer AnblickTweak-IT ist ein wunderbarer AnblickTweak-IT ist ein wunderbarer Anblick

Standard AW: [PHP] Merkwürdiger/Unberechtigter Speicherüberlauf im PHP-Skript

Was passiert? Nun ja

Code:
PHP Fatal error:  Out of memory
Tweak-IT ist offline   Mit Zitat antworten
Für diesen Beitrag bedankt sich:
Mother-Brain (05.10.2011)
Antwort

Stichworte
php, phpskript, speicherã¼berlauf, speicherüberlauf


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist aus.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[News] Battlefield 4: PC-Patch gegen Speicherüberlauf- und Sound-Loop-Fehler TweakPC Newsbot News 8 14.01.2014 23:22
Backup-Archivierungs Skript Killerpixel Windows & Programme 1 23.11.2011 17:34
support@giga-hosting.biz mit Merkwürdiger E-Mail JPS Off Topic 17 09.05.2010 18:37
Merkwürdiger Maus und Tastatur "Absturz" OlDirtyBastard Sonstige Hardware 3 09.12.2006 22:33
Skript? hogo02 Programmiersprachen 4 25.09.2005 19:19


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:43 Uhr.






Powered by vBulletin® Version 3.8.10 (Deutsch)
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
SEO by vBSEO 3.5.2 ©2010, Crawlability, Inc.
Impressum, Datenschutz Copyright © 1999-2015 TweakPC, Alle Rechte vorbehalten, all rights reserved