[TYPO3-german] TypoScript Verschachtelung und Performance

JoH asenau info at cybercraft.de
Tue May 11 10:07:07 CEST 2010


>>> Da Du in keinem Fall ein COA_INT oder USER_INT verwendest, ist die
>>> "Geschwindigkeit" genaugenommen irrelevant, denn üblicherweise
>>> landet eine
>>> solche Seite nach dem ersten Rendern im Cache und wird bei jedem
>>> weiteren Request umgehend ausgeliefert.
>>
>> OK, richtig... dann ergänzend genauer:
>> da an der Stelle lib.modul jedes beliebige Element stehen könnte
>> also auch die Ausgabe einer kompletten Extension die möglicherweise
>> auch völlig ungecached laufen muß, wie wäre dann die Situation ?
>>
>> mich interessiert ob durch eine solche prinzipielle Arbeitsweise
>> unvertretbar hohe Performanceeinbußen entstehen...
>>
>> ein modul (gefüllt mit was auch immer) in eine area kopieren (oder
>> referenzieren)
>> und diese areas dann in einen subpart/marker/tvObjectPath  kopieren
>> (referenzieren)
>>
> das gesamte typosscript wird erstmal in ein verschachtesltes array
> geparsed.. wir reden also hier über die frage ist es wie kompiziert
> ist es ein array zu kopieren.

Und wir reden darüber, daß es je nach verwendter Methode ein paar
Einschränkungen gibt

> == Variante A (mit Referenz) ==
>
> // hier ist zu beachten das die "referenzen" in wirklichkeit einfach
> nur text elemente sind die später erst beim auslesen "verstanden
> werden um dann einen korrekten lookup im array zu machen.

Und es ist zu beachten, daß in diesem Fall
a) alle Eigenschaften des Original-Elements über den TSOB auch nur dort zu
finden sind
b) im referenzierenden Element nur Eigenschaften hinzugefügt oder
überschrieben, nicht aber gelöscht werden können

> == Variante B (mit Kopie) ==
>
> // wie man hier schon an der variante mit kopie sieht wird das array
> durch das kopieren deutlich grösser. dafür entfallen ein paar
> zusätliche lookups im array. ich denke im normal fall. ist es
> warscheinlich jacke wie hose. die variante mit den referenzen ist
> speicher spaarender dafür brauchts einen minimum mehr an zugriffen.
> variante b braucht mehr speicher und dafür weniger zugriffe.

Und es ist zu beachten, daß in diesem Fall
a) die Eigenschaften der Kopien über den TSOB nicht beim Original-Element zu
finden sind sondern nur bei der Kopie selbst
b) das Hinzufügen von Eigenschaften im Original-Element je nach Position im
Template keine Auswirkungen mehr auf die Kopie hat

> variante C ist das kompakteste von allem. aber schlecht wartbar.

Das mag noch funktionieren, wenn nur eine Nase am Template schraubt, wird
aber spätestens bei umfangreicheren Templates auch dann zur Quälerei.

> es gibt noch eine letze variante D
> dort verwendest du temp.* objekte und kopierst die daten.

AFAIK funktioniert diese Variante nicht mit TemplaVoila, weil dort temp zum
Zeitpunkt der Zuordnung des TypoScripts bereits "verschwunden" ist. - Da TV
aber eh ein ziemlicher Performance-Fresser ist, macht das den Braten dann
auch nicht mehr fett ;-)

HTH

Joey

-- 
Wenn man keine Ahnung hat: Einfach mal Fresse halten!
(If you have no clues: simply shut your gob sometimes!)
Dieter Nuhr, German comedian
Xing: http://contact.cybercraft.de
Twitter: http://twitter.com/bunnyfield
TYPO3 cookbook (2nd edition): http://www.typo3experts.com




More information about the TYPO3-german mailing list