Jinja2 et Mako sont apparemment très rapides.
Comment sont-ils comparés à string.Template?
Jinja2 et Mako sont apparemment très rapides.
Comment sont-ils comparés à string.Template?
Voici les résultats du modèle populaire pour les moteurs de rendu d'un 10x1000 tableau HTML.
Python 2.6.2 on a 3GHz Intel Core 2
Kid template 696.89 ms
Kid template + cElementTree 649.88 ms
Genshi template + tag builder 431.01 ms
Genshi tag builder 389.39 ms
Django template 352.68 ms
Genshi template 266.35 ms
ElementTree 180.06 ms
cElementTree 107.85 ms
StringIO 41.48 ms
Jinja 2 36.38 ms
Cheetah template 34.66 ms
Mako Template 29.06 ms
Spitfire template 21.80 ms
Tenjin 18.39 ms
Spitfire template -O1 11.86 ms
cStringIO 5.80 ms
Spitfire template -O3 4.91 ms
Spitfire template -O2 4.82 ms
generator concat 4.06 ms
list concat 3.99 ms
generator concat optimized 2.84 ms
list concat optimized 2.62 ms
L'indice de référence est basé sur le code de Spitfire tests de performance avec des moteurs de template et a ajouté itérations pour augmenter la précision. La liste et le générateur concat à la fin de la main codé en Python pour avoir une idée de la limite supérieure de la performance réalisables par la compilation de bytecode Python. Les versions optimisées utilisation de la chaîne d'interpolation dans la boucle interne.
Mais avant de vous lancer pour changer votre moteur de template, assurez-vous que c'est important. Vous aurez besoin de faire un peu assez lourd, la mise en cache et vraiment optimisé le code avant les différences entre la compilation des moteurs de template commence à la matière. Pour la plupart des applications de bonnes installations de captage, de compatibilité avec les outils de conception, de familiarité et d'autres choses qui comptent beaucoup plus.
À partir de la jinja2 docs, il semble que la chaîne de caractères.Le modèle est la manière la plus rapide si c'est tout ce dont vous avez besoin.
Sans doute, vous devriez essayer de enlever autant de la logique à partir de modèles comme possible. Mais les modèles sans logique de dire que vous avez à faire tous les traitement dans le code ce qui est ennuyeux et stupide. Un moteur de template qui est-ce que est livré avec Python et appelé chaîne.De modèle. Vient sans boucles et de conditions et de loin la manière la plus rapide moteur de template, vous pouvez obtenir pour Python.
En général, vous devrez faire du profilage pour répondre à cette question, car cela dépend de la manière dont vous utilisez les modèles et de leur utilité.
string.Template est le plus rapide, mais si primitif, il peut difficilement être appelé un modèle du même souffle que les autres systèmes de templates, car il ne fait que remplacer des chaînes, et n'a pas de conditions ou de boucles, ce qui le rend plutôt inutile en pratique.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.