php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 01-04-2010, 13:49
minkowski
 Registrierter Benutzer
Links : Onlinestatus : minkowski ist offline
Registriert seit: Apr 2010
Beiträge: 4
minkowski befindet sich auf einem aufstrebenden Ast
Standard bilderzeugung - memory_limit 3gb

hallo,

ich versuche im moment ein sehr großes bild (~32 megapixel) zu erstellen, in das ich dann viele kleine reinkopieren möchte.
das ganze soll natürlich nicht in einer produktivumgebung laufen, ich möchte einfach nur das große bild mit hilfe von informationen aus einer db erstellen und dann mit seadragon nutzen.

das problem:
Zitat:
Fatal error: Out of memory (allocated 1848901632) (tried to allocate 75200 bytes) in ...\map_image2.php on line 2
das memory_limit in der php.ini habe ich auf 3 gb gesetzt und der fehler kommt direkt bei imagecreatetruecolor.

hier mein (geschrumpfter) code

PHP-Code:
$image imagecreatetruecolor(1880018800);
imagedestroy($image);
echo 
'done'
bis zu einer größe von ca. 18000x18000 px funktioniert es gut und der taskmanager zeigt auch keinen großen ramverbrauch an (der steigt um höchstens 100 mb)

gibt es da noch irgendwelche internen beschränkungen, die ich übersehen habe? im forum hab ich leider nur beispiele gefunden, wo das einstellen des memory limit geholfen hat und die $x*$y*5 + $y*30 regel würde würde für das beispiel auch nur ca. 1,5 gb ergeben.

vielen dank
minkowksi
Mit Zitat antworten
  #2 (permalink)  
Alt 01-04-2010, 15:16
wahsaga
  Moderator
Links : Onlinestatus : wahsaga ist offline
Registriert seit: Sep 2001
Beiträge: 25.236
wahsaga befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von minkowski Beitrag anzeigen
das memory_limit in der php.ini habe ich auf 3 gb gesetzt
Hm, kann PHP mit so viel umgehen, und gewährt ihm auch das OS so viel?

Ich würd's erst mal mit -1 versuchen, und dann schauen, wie weit du kommst.

Zitat:
die $x*$y*5 + $y*30 regel würde würde für das beispiel auch nur ca. 1,5 gb ergeben.
Na das passt ja in etwa zu der angegebenen Größe, bei der abgebrochen wurde.


OffTopic:
Dieser Threadtitel ist einer von denen, bei denen der ich Kombination aus zwei Wörtern mit Bindestrich in er Mitte irgendwie den Vorzug vor der Zusammenschreibweise geben würde ... ich weiss auch nicht ganz, wieso.
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
Mit Zitat antworten
  #3 (permalink)  
Alt 01-04-2010, 15:42
minkowski
 Registrierter Benutzer
Links : Onlinestatus : minkowski ist offline
Registriert seit: Apr 2010
Beiträge: 4
minkowski befindet sich auf einem aufstrebenden Ast
Standard

danke für die antwort.

ich hab noch ein bisschen am memory_limit wert gedreht, aber auch 6G und -1 (bzw. -1M) bringt nix. er bricht immer ungefähr an der gleich stelle ab. wobei das interessanterweise nur ungefähr die gleich ist. es ist immer ein bisschen anders.

ob php soviel verwalten kann weiß ich nicht, da hab ich auch nix zu gefunden. es verweisen immer nur alle auf das memory_limit. und ob windows ihm soviel gibt kann ich nicht sagen, sollte es doch aber, wenn ein programm das anfordert (in meinem rechner sind zur zeit 6gb installiert - von der seite her sollte es auch kein problem sein).
Mit Zitat antworten
  #4 (permalink)  
Alt 01-04-2010, 15:49
Quetschi
 PHP Expert
Links : Onlinestatus : Quetschi ist offline
Registriert seit: Dec 2004
Beiträge: 3.134
Quetschi wird schon bald berühmt werden
Standard

Zitat:
Zitat von minkowski Beitrag anzeigen
... und ob windows ihm soviel gibt kann ich nicht sagen, ...
32-Bit oder 64-Bit-Version?

Kenn mich da nicht genau aus, aber bei 32-Bit-Windows könnte ggf. schon mit Problemen zu rechnen sein.
__________________
Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
Schön - etwas Geschichte kann ja nicht schaden.
Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!
Mit Zitat antworten
  #5 (permalink)  
Alt 01-04-2010, 16:04
minkowski
 Registrierter Benutzer
Links : Onlinestatus : minkowski ist offline
Registriert seit: Apr 2010
Beiträge: 4
minkowski befindet sich auf einem aufstrebenden Ast
Standard

das ist ein guter einwand. ich hab zwar ein 64-bit windows, aber vermutlich ist php 32 bit.
etwas mehr als 1 gb ist von system schon besetzt und vllt. "füllt" php den speicher dann nur bis zu 3gb auf.
da werd ich gleich mal versuchen ein 64 bit server-system aufzusetzen.
da es xampp ja nicht als 64 bit für windows gibt, gibts da ne alternative? sonst halt alles per hand...
Mit Zitat antworten
  #6 (permalink)  
Alt 01-04-2010, 16:28
PHP-Desaster
 PHP Expert
Links : Onlinestatus : PHP-Desaster ist offline
Registriert seit: Mar 2006
Beiträge: 3.105
PHP-Desaster befindet sich auf einem aufstrebenden Ast
Standard

Ich habe das bei mir mal getestet:
Code:
php -d memory_limit=3G -r "imagecreatetruecolor(18800, 18800);"
Das Skript läuft so durch. Sehr schick ist auch der Performancegraph vom Prozessexplorer dazu:
bilderzeugung - memory_limit 3gb-perf-php-bigimage.png
Mein System ist ein Windows Vista Business SP2, 3 GB RAM, 32 Bit.

Ich behaupte einfach mal, du setzt dein memory_limit nicht richtig...
Mit Zitat antworten
  #7 (permalink)  
Alt 01-04-2010, 17:24
minkowski
 Registrierter Benutzer
Links : Onlinestatus : minkowski ist offline
Registriert seit: Apr 2010
Beiträge: 4
minkowski befindet sich auf einem aufstrebenden Ast
Standard

das find ich jetzt mal verblüffend.
wenn ich die datei per
Zitat:
php -d memory_limit=3G -f map_image2.php
in der konsole ausführe, läuft es auch durch.

aber ich versteh nicht ganz, was ich mit der zeile
Zitat:
memory_limit=3G
in der php.ini falsch mache. muss ich da noch was beachten?

PS: über die 20.000 px x 20.000 px komm ich damit aber auch nicht, selbst mit 6G. werd mich wohl doch mal an der x64 version probieren
Mit Zitat antworten
Antwort

Lesezeichen

Stichworte
imagecreatetruecolor, memory_limit


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Bilderzeugung in Schleife per PHP KickASS PHP Developer Forum 4 04-01-2008 10:37
Zip :: Memory_limit sypr0 PHP Developer Forum 25 21-08-2007 11:20
Verzeichniss Bilderzeugung CodeBlue PHP Developer Forum 3 12-12-2004 15:34
memory_limit in php.ini cre8tive Fragen zu Installation & Konfiguration (LAMP, WAMP & Co.) 4 16-12-2003 12:06
dynamische Bilderzeugung und Windows JoelH PHP Developer Forum 0 13-12-2001 11:10

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre 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


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

PHP Server Monitor

PHP Server Monitor ist ein Skript, das prüft, ob Ihre Websites und Server betriebsbereit sind.

11.09.2018 Berni | Kategorie: PHP/ Security
PHP WEB STATISTIK ansehen PHP WEB STATISTIK

Die PHP Web Statistik bietet Ihnen ein einfach zu konfigurierendes Script zur Aufzeichnung und grafischen und textuellen Auswertung der Besuchern Ihrer Webseite. Folgende zeitlichen Module sind verfügbar: Jahr, Monat, Tag, Wochentag, Stunde Folgende son

28.08.2018 phpwebstat | Kategorie: PHP/ Counter
Affilinator - Affilinet XML Produktlisten Skript

Die Affilinator Affilinet XML Edition ist ein vollautomatisches Skript zum einlesen und darstellen der Affili.net (Partnerprogramm Netzwerk) Produktlisten und Produktdaten. Im Grunde gibt der Webmaster seine Affilinet PartnerID ein und hat dann unmittelb

27.08.2018 freefrank@ | Kategorie: PHP/ Partnerprogramme
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 18:28 Uhr.