php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2008

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 30.08.2007, 09:52  
Neuer Benutzer
 
Registriert seit: 30.08.2007
Beiträge: 2
Ronny76
Standard Speicherproblem: memory_limit ändern hilft nicht

Hallo,

ich habe ein recht speicherintensives script, welches Datensätze aus einer DB ausließt. Mein memory_limit in der php.ini steht bei 512MB (habe 2GB RAM).
Ich habe dann mal nach einer bestimmten Anzahl von DS (100K, 200K etc) debuggen lassen wieviel Speicher (memory_get_usage()) verwendet wird.
-----------------------------------------------------------------------------------
Es ergibt sich folgende Ausgabe:

Speicherauslastung am Anfang: 590.544
Speicherauslastung vor DB Uebertragung: 7.341.368
Speicherauslastung nach 100K DS: 43.906.288
Speicherauslastung nach 200K DS: 80.443.104
Speicherauslastung nach 250K DS: 98.450.744
Speicherauslastung nach 275K DS: 108.502.448

Fatal error: Allowed memory size of 536.870.912 bytes exhausted (tried to allocate 35 bytes) in C:\Programme\Test\DisplayAnalyse.php on line 203

-----------------------------------------------------------------------------------

Die nächste Debug stufe hätte nach 290K DS kommen sollen, davor bricht er aber ab. So recht verstehe ich die Fehlermeldung nicht, denn eigentlich sollte bei 290K DS etwas 120 MB belegt sein und nicht 536MB wie in der Fehlermeldung steht.

Die gleich Fehlermeldung (nur mit angepasster "exhausted" größe kommt auch wenn ich 1024 als memory_limit angebe...
Ist der maximale Wert für memory_limit etwas 128 MB? (weil das in etwas die grenze ist an der, der Fehler entsteht).

Hat da jemand von euch vielleicht eine Idee dazu?

Vielen Dank
--ronny
Ronny76 ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 30.08.2007, 12:21  
Benutzer
 
Registriert seit: 06.10.2004
Beiträge: 77
Xfer
Standard

Hallo,
schau mal hier:

http://de3.php.net/results.php?q=mem...mit&l=en&p=all

Es gab nen paar Bugs, bei denen die Einstellung des memory_limit keine Auwirkung hatte, evtl. ist ja deine PHP-Version betroffen.

Und eine Frage, was macht denn das Script dass es so viel Speicher braucht?

cu
Xfer
__________________
Xfer ist offline  
Alt 30.08.2007, 13:27  
Moderator und Wett-König
 
Benutzerbild von dr.e.
 
Registriert seit: 21.05.2008
Beiträge: 3.633
PHP-Kenntnisse:
Fortgeschritten
dr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblick
dr.e. eine Nachricht über Skype™ schicken
Standard

Hallo Ronny76,

zunächst mal ein Herzliches Willkommen und viel Spass im PHPFriend.de-Forum!


Zitat:
Die gleich Fehlermeldung (nur mit angepasster "exhausted" größe kommt auch wenn ich 1024 als memory_limit angebe...
Ist der maximale Wert für memory_limit etwas 128 MB? (weil das in etwas die grenze ist an der, der Fehler entsteht).

Hat da jemand von euch vielleicht eine Idee dazu?
Ich kann da nur meinem Vorredner zustimmen, irgendetwas an dem Script ist schlecht programmiert, denn 1024MB-Arbeitsspeicher darf ein Skript einfach nicht brauchen und es scheint ja kein Ende zu geben... Bitte analysiere das Programm nochmal und versuche möglichst speicherschonend (FIFO) zu programmieren.
__________________
Viele Grüße,
Dr.E.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1. Think about software design before you start to write code!
2. Discuss and review it together with experts!
3. Choose good tools (-> Adventure PHP Framework (APF))!
4. Write clean and reusable software only!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dr.e. ist offline  
Alt 30.08.2007, 14:42  
Neuer Benutzer
 
Registriert seit: 30.08.2007
Beiträge: 2
Ronny76
Standard

Vielen Dank für die Unterstützung. Ich habe den Fehler jetzt gefunden. Der Speicher ist beim letzten Datensatz vollgelaufen weil der Wert der aus der Datenbank kam sehr viel zu groß war.
Also kein Fehler von den PHP settings noch nicht mal in meinem script, sondern der rohdaten.
Ronny76 ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

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 an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php speicherproblem, memory_limit ändern, php memory_limit ändern, php memory_limit 512, php memory limit 512m, php speicherschonend programmieren, think design 2007 speicher problem, php speicherfehler, php speicherprobleme, memory_limit php grenze, php memory_limit, memory_limit php 512, php memory_limit änder, memory limit htaccess ändern, memory_limit php anzeigen, php memory_limit 512mb, memory limit php 256 512, speicherprobleme php, memory_limit ändert sich nicht, memory_limit maximale größe

Alle Zeitangaben in WEZ +1. Es ist jetzt 21:33 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.