Hallo Yvon.

Extbase = Speicherhunger?

Ja. by design(TM). :)
Natürlich wird mehr Speicher benötigt, wenn du nicht einfach nur Datenbankfelder auf ein Array abbildest, sondern in Objekte mit Methoden steckst, sie in einem Repository verwaltest, auf Änderungen hin überwachst und entsprechend in der Datenbank updatest, sollte es nötig sein. Auch die Schachtelung verschiedener Aufgaben in verschiedene Klassen führt zu einem erhöhten Speicherhunger. Dieses "Problem" hat aber jedes moderne PHP Framework. Und in der Regel wiegen die Vorteile einer solchen Architektur ihre Nachteile auf.

Trotzdem beobachte ich bei ein oder zwei größeren Objekten (die über
mehrere Tabellen gehen) eine ziemlich hohe Auslastung des Apache
Prozesses. Auch die Verarbeitung der Daten geht zäh voran.

Hast du konkrete Zahlen dazu? Wie gesagt, dass Extbase etwas (!) lahmer ist als das alte pibase ist nicht ungewöhnlich.

Gibt es Erfahrungen / Möglichkeiten Typo3, bzw. Extbase zu
beschleunigen? Wir setzen Typo3 4.4.4 ein.

- TYPO3 Cache - immer wieder gern genommen. Mich stört es nicht so sehr, wenn eine Seite bei der Generierung 2 Sekunden statt einer dauert, wenn die nächsten 100 Besucher dann auf die Seite im Cache zugreifen können. - bei Fluid solltest du aufpassen, dass du die ViewHelper nicht zu sehr schachtelst. Um rauszufinden, ob Fluid bei dir die Bremse ist, kann ich dir die Fluid Debugging ViewHelper[1] empfehlen. Mit denen kannst du einzelne Teile des Template-Renderings im Admin Panel tracken und schauen, welche Teile besonders langsam sind. Außerdem kannst du den Speicherverbrauch an verschiedenen Stellen beobachten. Die Zahlen sind allerdings auch mit Vorsicht zu geniesen, da Extbase möglicherweise Daten per LazyLoading nachlädt. - in Extbase selbst ist vermutlich der PersistanceManager (persistAll()) die größte Bremse, da er alle geladenen Objekte auf Änderungen hin überprüft. Bei dem ist es nicht ungewöhnlich, wenn er eine halbe Sekunde braucht nur um festzustellen, dass er nichts machen muss. Prinzipiell solltest du daher darauf achten auch nur die Objekte aus der Datenbank zu holen, die du benötigst.

Das sind erstmal die Sachen, die mir spontan einfallen.

Sonst hilft dir vielleicht ein Profiling oder ein selbstgebastelter TimeTracker weiter.

Viele Grüße

Christian.

[1] https://github.com/czenker/fluid_debug
_______________________________________________
TYPO3-german mailing list
TYPO3-german@lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german

Antwort per Email an