Verfasst: Montag 4. Juni 2007, 15:35
Ich vermute mal, ein function call ist noch langsamer als Strings neu zu erzeugen - aber das ist mehr oder weniger geraten.
Seit 2002 Diskussionen rund um die Programmiersprache Python
https://www.python-forum.de/
Cheetah hat afaik einen in C optimierten Name Mapper. Und dann gibt es noch ClearSilver wofür es vermutlich auch Python Bindings gibt. Nur frage ich mich gerade wie relevant das überhaupt ist. Ich nehme mal an dass die Template Engine auf eine Normalen Website 1-10% der verbrauchten CPU Zeit ausmacht.thelittlebug hat geschrieben:Man könnte sich ja auch noch die Arbeit antun und eine Templateengine in C programmieren, bzw. eine vorhandene für Python einsatzfähig machen.
lgherby
Kaum eine Engine macht das auch mit tatsächlich Python code zu erstellen. Mako/Jinja und ich denke einige andere auch interessieren sich nur für den Bytecode und dumpen den (wenn gewünscht) irgendwohin, damit das nächste mal das Template nicht mehr geparst werden muss.veers hat geschrieben:Wieso ist es so beliebt Templates in Python Code zu kompilieren, das wirkt auf mich nicht wirklich elegant.
Hm, tönt für mich immer noch etwas nach schwarzer Magie. Aber vielleicht sollte ich es mir auch einfach genauer ansehen.blackbird hat geschrieben:Kaum eine Engine macht das auch mit tatsächlich Python code zu erstellen. Mako/Jinja und ich denke einige andere auch interessieren sich nur für den Bytecode und dumpen den (wenn gewünscht) irgendwohin, damit das nächste mal das Template nicht mehr geparst werden muss.
Wenn du Wege findest das ohne schwarze Magie zu machen, raus damit. Interpretieren ist eine ziemlich blöde Idee da langsam.veers hat geschrieben:Hm, tönt für mich immer noch etwas nach schwarzer Magie. Aber vielleicht sollte ich es mir auch einfach genauer ansehen.blackbird hat geschrieben:Kaum eine Engine macht das auch mit tatsächlich Python code zu erstellen. Mako/Jinja und ich denke einige andere auch interessieren sich nur für den Bytecode und dumpen den (wenn gewünscht) irgendwohin, damit das nächste mal das Template nicht mehr geparst werden muss.
Magie? Warum? Python unterstützt und fördert doch Introspektion, und der Zugriff auf Codeobjekte aus der Sprache gehört auch dazu.veers hat geschrieben:Hm, tönt für mich immer noch etwas nach schwarzer Magie. Aber vielleicht sollte ich es mir auch einfach genauer ansehen.blackbird hat geschrieben:Kaum eine Engine macht das auch mit tatsächlich Python code zu erstellen. Mako/Jinja und ich denke einige andere auch interessieren sich nur für den Bytecode und dumpen den (wenn gewünscht) irgendwohin, damit das nächste mal das Template nicht mehr geparst werden muss.
Magie weil ich nicht damit vertraut bin und nicht verstehe wie es Funktioniert (Das Prinzip hinter Byte Code und einer VM kenne ich, aber nicht wie es in Python gehandhabt wird). Zudem Magie weil ich vermute dass das ganze ziemlich implementierungsabhängig und undokumentiert ist. Ich mag mich aber böse irren darum auchbirkenfeld hat geschrieben:Magie? Warum? Python unterstützt und fördert doch Introspektion, und der Zugriff auf Codeobjekte aus der Sprache gehört auch dazu.veers hat geschrieben:Hm, tönt für mich immer noch etwas nach schwarzer Magie. Aber vielleicht sollte ich es mir auch einfach genauer ansehen.blackbird hat geschrieben:Kaum eine Engine macht das auch mit tatsächlich Python code zu erstellen. Mako/Jinja und ich denke einige andere auch interessieren sich nur für den Bytecode und dumpen den (wenn gewünscht) irgendwohin, damit das nächste mal das Template nicht mehr geparst werden muss.
.veers hat geschrieben:Aber vielleicht sollte ich es mir auch einfach genauer ansehen.
Hallo Y0Gi!Y0Gi hat geschrieben:Genau aus dem Grund sind Cheetah und ClearSilver für mich seinerzeit direkt gestorben
wakko0815 hat geschrieben:Darf ich das hier zu [gekidnapped] erklären?
Dann muss das aber wirklich lange her gewesen sein. In meiner Cheetah-Zeit (damals war Spyce 1.3 aktuell und Cheetah einer der wenigen TEs die es damals für Python gab) war das schon so, dass _namemapper optional war.Y0Gi hat geschrieben:gerold: Hm. Entweder ist das mal geändert worden oder ich habe das damals tatsächlich überlesen.