Django internationalization performance issues (3-4s vs 300ms with USE_I18N=False)

只愿长相守 提交于 2019-12-06 10:09:18

问题


So, we have a page with quite a lot of information on in, and we use {% trans %} a lot, but when we actually use them (USE_I18N=True) the site grinds to a halt, ~3.5 seconds with i18n vs 300ms with it off.

We did some profiling and it seems the translation initialization takes forever.

20.2%   0.503 /Library/Python/2.6/site-packages/Django-1.2.1-py2.6.egg/django/utils/translation/__init__.py
15.3%   0.383 /System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/genericpath.py
11.4%   0.285 /System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/gettext.py
 8.6%   0.215 /Library/Python/2.6/site-packages/Django-1.2.1-py2.6.egg/django/utils/formats.py
 8.5%   0.212 /System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/posixpath.py
 8.3%   0.206 /Library/Python/2.6/site-packages/Django-1.2.1-py2.6.egg/django/utils/functional.py
 7.6%   0.189 /Library/Python/2.6/site-packages/Django-1.2.1-py2.6.egg/django/utils/translation/trans_real.py

We tried wrapping the {% trans %} blocks into another templatetag which caches the translations, but that only gained a couple of ms, and the pages are not really that cacheable (except for the translations of course).

Anyone have any experience with this, and/or some pointers on how to make this go faster? Or any pitsfalls we might have gotten ourselfs into?


回答1:


Seems L10N (new in django 1.2) was the sinner. We solved it by not enabling it (as we use ISO formats everywhere anyways).

Probably should report this to django.. :-)




回答2:


Bin your custom caches and try some template fragment cacheing - the docs linked show how you can use it with i18n



来源:https://stackoverflow.com/questions/3254791/django-internationalization-performance-issues-3-4s-vs-300ms-with-use-i18n-fals

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!