Problem mit PagerManager

Hier finden sich Fragen und Ergänzung zur Dokumentation. // All questions and discussions about the documentation.
Antworten
Well
Beiträge: 263
Registriert: 25.10.2009, 11:00:19
Wohnort: Beuren
Kontaktdaten:

Problem mit PagerManager

Beitrag von Well » 27.10.2009, 22:27:12

Moin :)

Ich beschäftige mich nun seit einigen Tagen mit dem APF und wollte daher heute - mit hilfe der Tutorials auf der Homepage - eine kleine "Übungs-"seite erstellen, diese je nach angebener ID die entsprechende Gruppe und deren Benutzer aus der DB läd.
Erstaunlicher Weiße funktioniert das ganze auch recht gut. :) Bis auf eines:

Wenn ich die getPager() Methode des PagerManagers aufrufe, gibt mir PHP folgende Fehlermeldung aus:
Fatal error: Allowed memory size of 16777216 bytes exhausted (tried to allocate 65 bytes) in /home/daniel/public_html/apps/core/benchmark/BenchmarkTimer.php on line 273
Dabei verändert sich alle paar Aufrufe die Datei / Zeile.

Kommentiere ich den Aufruf der Methode aus, funktioniert alles perfekt...

( Aufruf von getPager(): return $pMgr->getPager(array("GroupID" => $this->__GroupID)); )


Woran liegt das ?

Benutzeravatar
dr.e.
Administrator
Beiträge: 4605
Registriert: 04.11.2007, 16:13:53

Re: Problem mit PagerManager

Beitrag von dr.e. » 28.10.2009, 01:19:33

Hallo Well,

herzlich willkommen im APF-Forum!
Erstaunlicher Weiße funktioniert das ganze auch recht gut.
Das freut mich. :)
Wenn ich die getPager() Methode des PagerManagers aufrufe, gibt mir PHP folgende Fehlermeldung aus
Nur kurz zum Hintergrund: der BenchmarkTimer ist eine Komponenten, die an vielen Stellen eingebunden ist um die Zeiten aufzunehmen, die im Report angezeigt werden. An der monierten Stelle wird versucht ein neues Objekt (Benchmark-Prozess) zu erzeugen, was fehl schlägt. Dein Memory-Limit scheint auf 16MB eingestellt zu sein, was u.U. zu wenig sein kann (in diesem Fall auch ist).

Da das APF die komplette Seitenstruktur im RAM aufbaut, muss etwas mehr Speicher als bei herkömmlichen Skripten emöglicht werden. In der Regel reichen aber 20-40MB. Passe einfach mal die memory_limit-Option in deiner php.ini an und versuche das Ganze nach einem Neustart deines Webservers nochmal. Ich denke, damit ist es behoben. Sollte das nicht der Fall sein, müssen wir nochmal genauer hinsehen.
Viele Grüße,
Christian

Well
Beiträge: 263
Registriert: 25.10.2009, 11:00:19
Wohnort: Beuren
Kontaktdaten:

Re: Problem mit PagerManager

Beitrag von Well » 28.10.2009, 12:51:48

Moin :)

Danke erstmals für die Antwort.

Ich habe das Limit nun auf 32MB hochgesetzt. Das laden der Seite braucht nun noch einmal etwas länger (gefühlte 3-4 Sekunden, davor 1-2 Sekunden, was natürlich auch schon zu lange war.) Anschließend bricht er jedoch wieder mit der gleichem Meldung ab:
Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 16 bytes) in /home/daniel/public_html/apps/core/service/ServiceManager.php on line 173
Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 16 bytes) in /home/daniel/public_html/apps/core/pagecontroller/pagecontroller.php on line 413
Wenn ich das Limit auf 64MB hochsetze, läd er die Seite ca. 8 Sekunden und gibt nur eine leere, weiße Seite aus.

Megger
Beiträge: 1233
Registriert: 04.11.2008, 10:57:37

Re: Problem mit PagerManager

Beitrag von Megger » 28.10.2009, 13:13:32

Dann gibt es aber noch irgendwo anders ein Problem!

Zeig mal deinen Quellcode, irgendwas kann da nicht stimmen.
Tutorial: Browsergame mit dem APF (Die ersten Parts handeln von Installation und Inbetriebnahme des APFs, deswegen sicherlich auch für alle Nicht-Browsergame-Programmierer interessant)

APF-Version
  • Entwicklung: 2.0
  • Produktiv: 1.15

Well
Beiträge: 263
Registriert: 25.10.2009, 11:00:19
Wohnort: Beuren
Kontaktdaten:

Re: Problem mit PagerManager

Beitrag von Well » 28.10.2009, 13:35:44


Benutzeravatar
Screeze
Beiträge: 1920
Registriert: 05.08.2009, 09:49:04
Kontaktdaten:

Re: Problem mit PagerManager

Beitrag von Screeze » 28.10.2009, 15:47:28

Allowed memory size of 33554432 bytes exhausted (tried to allocate 16 bytes
liegt definitiv nicht am memory limit, selbes hatte ich auch irgendwann mal.
Hier steht, er versucht 16 bytes zu laden, aber es sind "nur" 33554432 bytes erlaubt.

also hätte er noch genug frei.
Ich bin mir nicht sicher was mein fehler damals war, aber es war definitiv ein programmiertechnischer... irgend ein falscher aufruf oder so.

Megger
Beiträge: 1233
Registriert: 04.11.2008, 10:57:37

Re: Problem mit PagerManager

Beitrag von Megger » 28.10.2009, 17:41:16

Ich verstehe die Fehlermeldung so, dass die 33554432 Bytes verbraucht sind, PHP wollte 16 Bytes haben, aber es ist nichts mehr da.
Die Seite braucht viel zu lange zum Laden, deswegen denke ich, dass irgendwo ein Speicherleak vorhanden ist. Ich werde mir nachher mal den Quellcode anschauen.

Edit:
Bin beim Quellcode noch nicht so ganz durchgestiegen, aber eine Frage habe ich schonmal:
Warum benutzt du nicht den GenericORMapper?
Tutorial: Browsergame mit dem APF (Die ersten Parts handeln von Installation und Inbetriebnahme des APFs, deswegen sicherlich auch für alle Nicht-Browsergame-Programmierer interessant)

APF-Version
  • Entwicklung: 2.0
  • Produktiv: 1.15

Well
Beiträge: 263
Registriert: 25.10.2009, 11:00:19
Wohnort: Beuren
Kontaktdaten:

Re: Problem mit PagerManager

Beitrag von Well » 28.10.2009, 21:51:57

Megger hat geschrieben:Bin beim Quellcode noch nicht so ganz durchgestiegen, aber eine Frage habe ich schonmal:
Warum benutzt du nicht den GenericORMapper?
Wie gesagt, ich beschäftige mich nun erst seit ein paar Tagen mit dem Framework und wollte es daher aus Lernzwecken erst einmal auf diese Art und Weiße machen. ;)

Megger
Beiträge: 1233
Registriert: 04.11.2008, 10:57:37

Re: Problem mit PagerManager

Beitrag von Megger » 29.10.2009, 09:31:56

Das mit den paar Tagen habe ich irgendwie überlesen :D

Du könntest mal ein paar Testausgaben einbauen, was so alles aus der Datenbank ließt usw. Im Grunde dürfte der Seitenaufbau nicht solange dauern, ausser du hast nen langsamen Rechner als Server oder sonstiges!
Tutorial: Browsergame mit dem APF (Die ersten Parts handeln von Installation und Inbetriebnahme des APFs, deswegen sicherlich auch für alle Nicht-Browsergame-Programmierer interessant)

APF-Version
  • Entwicklung: 2.0
  • Produktiv: 1.15

Well
Beiträge: 263
Registriert: 25.10.2009, 11:00:19
Wohnort: Beuren
Kontaktdaten:

Re: Problem mit PagerManager

Beitrag von Well » 29.10.2009, 17:03:39

Megger hat geschrieben:Du könntest mal ein paar Testausgaben einbauen, was so alles aus der Datenbank ließt usw. Im Grunde dürfte der Seitenaufbau nicht solange dauern, ausser du hast nen langsamen Rechner als Server oder sonstiges!
An der Datenmenge wird es nun wirklich nicht liegen. :D

http://imagez.biz/getimage/5427/getPager.png : Das sollte aber auch nicht normal sein, oder ? :)

Megger
Beiträge: 1233
Registriert: 04.11.2008, 10:57:37

Re: Problem mit PagerManager

Beitrag von Megger » 29.10.2009, 21:53:55

Ich glaube du solltest nicht die transform Methode vom Pager aufrufen sondern es eher so machen:

Code: Alles auswählen

$this->setPlaceHolder('Pager',$M->getPager('comments'));
Tutorial: Browsergame mit dem APF (Die ersten Parts handeln von Installation und Inbetriebnahme des APFs, deswegen sicherlich auch für alle Nicht-Browsergame-Programmierer interessant)

APF-Version
  • Entwicklung: 2.0
  • Produktiv: 1.15

Well
Beiträge: 263
Registriert: 25.10.2009, 11:00:19
Wohnort: Beuren
Kontaktdaten:

Re: Problem mit PagerManager

Beitrag von Well » 29.10.2009, 22:38:35

Moin :)

Juhu, ich hab den Fehler. :)
Er lag bei der Konfiguration:

Folgendes hatte ich eingetragen, da ich dachte, mit "Output Design" sei die Template-Datei gemeint, in die man später den Pager einbindet.
Pager.DesignNamespace = "modules::gb::pres::templates"
Pager.DesignTemplate = "view"
Da hab ich mich dann wohl geirrt. :)

Megger
Beiträge: 1233
Registriert: 04.11.2008, 10:57:37

Re: Problem mit PagerManager

Beitrag von Megger » 30.10.2009, 13:07:07

:D Dann ist ja gut!
Ich selbst habe auch schonmal eine Weile mit dem Pager gekämpft! Läuft nun alles? Wie lange lädt die Seite?
Tutorial: Browsergame mit dem APF (Die ersten Parts handeln von Installation und Inbetriebnahme des APFs, deswegen sicherlich auch für alle Nicht-Browsergame-Programmierer interessant)

APF-Version
  • Entwicklung: 2.0
  • Produktiv: 1.15

Well
Beiträge: 263
Registriert: 25.10.2009, 11:00:19
Wohnort: Beuren
Kontaktdaten:

Re: Problem mit PagerManager

Beitrag von Well » 30.10.2009, 16:47:56

Megger hat geschrieben::D Dann ist ja gut!
Ich selbst habe auch schonmal eine Weile mit dem Pager gekämpft! Läuft nun alles? Wie lange lädt die Seite?
Moin :)

Jop, nun läuft alles so, wie ich es gerne hätte. :D
Die Dauer des Ladens der Webseite ist auch wieder im normalen Bereich, also weit unter einer Sekunde.

Benutzeravatar
dr.e.
Administrator
Beiträge: 4605
Registriert: 04.11.2007, 16:13:53

Re: Problem mit PagerManager

Beitrag von dr.e. » 31.10.2009, 14:06:35

Hallo Well, hallo Jungs,

sorry for the delay, aber ich war zwei Tage offline. Wie ich sehe, habt ihr das selbständig gelöst. Respekt!
Folgendes hatte ich eingetragen, da ich dachte, mit "Output Design" sei die Template-Datei gemeint, in die man später den Pager einbindet.
Korrekt, die Angabe bezieht sich lediglich auf das Template, das der Pager nutzt um die Pager-Ausgabe zu erzeugen. In der Doku scheint mir das nicht korrekt beschrieben zu sein. Ich nehme das auf die TODO-Liste auf und versuche mit 1.12 nochmal die Pager-Doku zu überarbeiten. Sofern sich jemand dazu berufen fühlt ein kurzes HOWTO zu schreiben, ist er gerne dazu eingeladen. :)

Als aktuelles Anschaungs-Material kann auch die neue Gästebuch-Implementierung im SVN herangezogen werden. Die Business-Komponente nutzt zum Auslesen der Daten ebenfalls den Pager.
Viele Grüße,
Christian

Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast