adoDB
Dominik Ruppert
- php
Hi,
ich habe ein Problem, seitdem ich mein Php-Projekt auf adoDB umgestellt habe, verhaut es mir sobald ich einen link nutze meinen virtuellen speicher, das ding läuft einfach über, die Objekte werden ja erst initialisiert wenn das skript aufgerufen wird und am ende wieder gelöscht, oder?????
Gruss
Dominik
Halihallo Dominik
ich habe ein Problem, seitdem ich mein Php-Projekt auf adoDB umgestellt habe, verhaut es mir sobald ich einen link nutze meinen virtuellen speicher, das ding läuft einfach über, die Objekte werden ja erst initialisiert wenn das skript aufgerufen wird und am ende wieder gelöscht, oder?????
Richtig.
1. Hast du irgendwo eine Endlosschleife? - Halte ich für am
wahrscheinlichsten. Debugge das Programm.
2. Windows ist dafür bekannt, dass der Speicher oftmals nicht, oder
erst viel später wieder freigegeben wird. Ist aber
unwahrscheinlich für deine Symptome.
3. ADO braucht selber auch Speicher, wobei dies normalerweise nicht
dazu führen sollte, dass der ganze virtuelle Speicher gefressen
wird. => unwahrscheinlich.
Tipp: Entweder du findest die Endlosschleife in deinem Programm, oder
versuche es mit einem einfachen Script, welches auf ADO zugreift, so
könntest du feststellen, ob das Problem zwischen PHP und System oder
an deinem Programm liegt.
BTW: ADO wird vom System verwaltet. Die Instanz wird wohl beim Ende
des Scriptes freigegeben, aber die "Klasse" (Libraries) bleiben
ggf. erhalten (falls z.B. eine andere Instanz von ADO offen ist,
COM benutzt ein ReferenceCounting, der Speicher für die ADO-
Verwaltung wird erst frei gegeben, wenn keine Instanzen mehr
existieren).
Viele Grüsse
Philipp
Hi Philipp!
Richtig.
- Hast du irgendwo eine Endlosschleife? - Halte ich für am
wahrscheinlichsten. Debugge das Programm.- Windows ist dafür bekannt, dass der Speicher oftmals nicht, oder
erst viel später wieder freigegeben wird. Ist aber
unwahrscheinlich für deine Symptome.
geht es um Windows? Hab ich wohl glatt überlesen ;-)
- ADO braucht selber auch Speicher, wobei dies normalerweise nicht
dazu führen sollte, dass der ganze virtuelle Speicher gefressen
wird. => unwahrscheinlich.
Ich könnte mir vorstellen dass er evtl. http://php.weblogs.com/ADODB meint, ist im Prinzip _die_ DB-Abstraktion nach PEAR-DB, MDB und MDB2 (btw. vermutlich ab PHP 5.1 gibt es so eine nette OO-Abstraktion endlich auf PHP-Ebene, und zwar PDO: http://www.edwardbear.org/pdo.phps, kommt von JDO...)
Grüße
Andreas
Halihallo Andreas
geht es um Windows? Hab ich wohl glatt überlesen ;-)
Ich könnte mir vorstellen dass er evtl. http://php.weblogs.com/ADODB meint, ist im Prinzip _die_ DB-Abstraktion nach PEAR-DB, MDB und MDB2 (btw. vermutlich ab PHP 5.1 gibt es so eine nette OO-Abstraktion endlich auf PHP-Ebene, und zwar PDO: http://www.edwardbear.org/pdo.phps, kommt von JDO...)
Jetzt bin ich aber... still und in meine Ecke zurückgezogen. :-)
Ah, immer diese Abkürzungen... Man sollte für jede Technologie eine
GUID einführen! :-)
Viele Grüsse
Philipp
Hi Philipp!
Jetzt bin ich aber... still und in meine Ecke zurückgezogen. :-)
Noch wissen wir nicht wer richtig geraten hat ;-)
Ah, immer diese Abkürzungen... Man sollte für jede Technologie eine
GUID einführen! :-)
*lol* kannst Du Dir ja mal auf die Fahnen schreiben ;-)
PTSC - Philipps Terminology Standardization Consortium ...
Grüße
Andreas
Halihallo Andreas
Jetzt bin ich aber... still und in meine Ecke zurückgezogen. :-)
Noch wissen wir nicht wer richtig geraten hat ;-)
Richtig, es besteht noch Hoffnung für mich ;-)
Ah, immer diese Abkürzungen... Man sollte für jede Technologie eine
GUID einführen! :-)
*lol* kannst Du Dir ja mal auf die Fahnen schreiben ;-)
PTSC - Philipps Terminology Standardization Consortium ...
Wunderprächtige Idee, ich reserviere gleich mal die Domain :-)
Neeiin, scho weg ;-) Egal, schwimmen macht eh mehr Spass, als alles
zu indizieren...
Viele Grüsse
Philipp
Hi!
ich habe ein Problem, seitdem ich mein Php-Projekt auf adoDB umgestellt habe, verhaut es mir sobald ich einen link nutze
Was für einen Link?
meinen virtuellen speicher, das ding läuft einfach über,
Kommt diese PHP-Fehlermeldung?
die Objekte werden ja erst initialisiert wenn das skript aufgerufen wird und am ende wieder gelöscht, oder?????
Ja.
Siehe auch den Zend-Artikel zum Thema "Reference Counting", da wird erklärt wie PHP mit den Variablen im Speicher umgeht: http://www.zend.com/zend/art/ref-count.php
evtl. helfen Dir folgende Funktionen das Problem zu finden:
http://de3.php.net/manual/de/function.memory-get-usage.php oder
http://de3.php.net/manual/de/function.getrusage.php
Am besten natürlich mit einem Profiler wie xdebug: http://xdebug.org/
Wie sieht denn der relevante Code aus? Kann es sein dass Du tatsächlich MB-weise Daten aus der DB in ein Array/Objekt schreibst?
Grüße
Andreas