TYPO3-Testaccount
Testen Sie die aktuellste TYPO3-Version kostenlos und unverbindlich für einen Monat!

Jetzt testen!

Schulungen

jetzt buchen

Performance Optimierung


Autor Nachricht
Verfasst am: 11. 02. 2012 [10:53]
Thomas27
Themenersteller
Dabei seit: 10.12.2004
Beiträge: 105
Ich hab da mal ne Frage zur Performanceoptimierung von tt_news.

Auf meiner Startseite binde ich via typoscript die letzten drei Newsbeiträge ein:
TYPOSCRIPT
### News LATEST in right column
 
#default
news >
news = COA_INT
news.5 = TEXT
news.5.value = <h5>NEWS</h5><div class="feeds"><a href="http://feeds2.feedburner.com/xxx" target="_blank"><img src="http://xxx.de/feed-icon-64x64.png" border="0" alt="xxx" /></a></div>
news.10 < plugin.tt_news
news.10 {
   code >
  code = LATEST
  pid_list >
  pid_list = 50 # the pids of the pages where your news are stored
  catImageMode = 0
  catTextMode = 0
  singlePid = 49
  #killt den wrapper <p>
  displayLatest.subheader_stdWrap.outerWrap = | 
  archive = 0
  archiveTypoLink.parameter = 15
  sys_language_mode = strict
}


HTML
php/substituteMarkerArrayCached 	 	1500 	1 	 	 	Cached from DB 
/Non-cached objects/Include 	 	1501 	0 	+791 	=791 	[/Non-cached objects/Include /5][/Non-cached objects/Include /10] 
/Non-cached objects/Include /5 	TEXT 	1501 	0 	 	 	<h5>NEWS</h5><div class="feeds"><a href="http://feeds2.feedburner.com/xxx" target="_blank"><img src="http://xxx/feed-xxxg" border="0" alt="xxx" /></a></div> 
/Non-cached objects/Include /10 	USER 	1501 	790 	+1 	=791 	
...
template ausgabe


Für diese 3 kleinen Beiträge braucht es aber 791 ms???? Kann ich irgendwie typo3 mitteilen, dass er sich diese 3 letzten Beiträge aus dem Cache holt?

Oder kann man generel COA_INT Objekten cachen?


ProfilWWW
Verfasst am: 11. 02. 2012 [13:28]
lisardo
Dabei seit: 20.10.2005
Beiträge: 306
Hallo,

Antwort: nein, kann man nicht. Und das ist kein Bug sondern ein Feature:

COA / COA_INT

Also nimm einfach COA statt COA_INT.

Peter, TYPO3 @ lisardo (Augsburg)

[Dieser Beitrag wurde 1mal bearbeitet, zuletzt am 11.02.2012 um 13:31.]
ProfilWWW
Verfasst am: 11. 02. 2012 [15:38]
Thomas27
Themenersteller
Dabei seit: 10.12.2004
Beiträge: 105
Danke lisardo, Gut zu wissen! Typo3 Grundkenntnisse!

Aber:

HTML
NEWS 	COA 	1041 	0 	+612 	=612 	
[page.10.marks.NEWS.5][page.10.marks.NEWS.10] 
5 	TEXT 	1041 	0 	 	 	
<h5>NEWS</h5><div class="feeds"><a href="http://feeds2.feedburner.com/xxx" target="_blank"><img src="http://image.mp3tht.de/feed-icon-64x64.png" border="0" alt="xxx" /></a></div> 
10 	USER 	1041 	611 	+1 	=612


Trotzdem verbrät eine Select Abfrage auf die letzten drei news Artikel 612ms???
Erscheint mir immer noch viel zu viel Zeit, für so eine einfache Abfrage.
ProfilWWW
Verfasst am: 11. 02. 2012 [16:35]
lisardo
Dabei seit: 20.10.2005
Beiträge: 306
Da gebe ich dir prinzipiell schon recht ... aber das rauszubekommen ist nicht so simpel.

Ich vermute, dass es sich nicht nur um eine einzige SELECT-Anfrage handelt (obwohl das in dem Fall wohl möglich wäre). Prinzipiell steht hinter der LATEST-Ausgabe auch eine Katgeorien-Auswahl, die ihrerseits baumartig aufgebaut sind und in unendlicher Tiefe verschachtelt sein können. Die Kategorien sind über eine MM-Tabelle relational mit den Einträgen verknüft. Ausserdem müssen die enable-Felder (frontend-user, hidden, deleted, von / bis) berücksichtigt werden (und zwar in den Einträgen sowie in den Kategorien), die pid der Seite, auf der die Daten abgelegt wurden (wichtig für die mehrfache Verwendung der Extension im Seitenbaum) sowie der Sprachoverlay samt Fallback auf die Standardsprache abhängig von den Einstellungen in config. Ausserdem sollten die Workspaces und Versions berücksichtigt werden. Das ist schon mal keine "einfache" SELECT-Abfrage mehr ... icon_smile.gif
Danach folgt das Parsen der RTE-Inhalte und der Rendering-Vorgang der Newsinhalte in die Templates und dann erst die nachgeordnete Verarbeitung durch die stdWrap-Einstellungen.
Also da hängt ganz schön was dran - und um das eigentliche Performance-Problem zu finden, muss man sich da durchdebuggen.
Dann ist in deinem kleinen Snippet noch was drin, nämlich der Link auf das Feedburner-Icon. Bist du sicher, dass du nicht eigentlich den Ladevorgang diese dieses Icons mißt? Der Abruf eines Icons über einen eigenen http-Requests hat eine relevante Dauer. Nimm mal alles raus, bis auch den reinen Output der News, dann wird es aussagekräftiger.

Peter, TYPO3 @ lisardo (Augsburg)

[Dieser Beitrag wurde 1mal bearbeitet, zuletzt am 11.02.2012 um 16:42.]
ProfilWWW
Verfasst am: 11. 02. 2012 [17:14]
Thomas27
Themenersteller
Dabei seit: 10.12.2004
Beiträge: 105
Da hast du recht, es sind mehrere Selects, wenn ich mir die im AdminPanel anschaue. Aber selbst wenn ich meinen eigenen Krempel mal auskommentiere, also Icon, Archiv, Standard Wrapper komme ich immer noch auf stolze 632 ms. Die machen also den Braten nicht fett.

Gibt es vielleicht eine eigene Extension, die Performance orientiert z.B. wirklich nur die drei letzten News Beiträge ausgibt, ohne auf Kategorien etc. Rücksicht zu nehmen?

Die andere Alternative wäre natürlich sich gleich selbst ein kleines PHP Skript zu basteln, welche dann genau die Aufgabe übernimmt.

Aber auf jeden Fall Danke für die ausführliche Erklärung!
ProfilWWW