Проблемы производительности интернационализации Django (3-4 с против 300 мс с USE_I18N = False) - PullRequest
2 голосов
/ 15 июля 2010

Итак, у нас есть страница с довольно большим количеством информации, и мы часто используем {% trans%}, но когда мы на самом деле их используем (USE_I18N = True), сайт останавливается, ~ 3,5 секунды с i18n против 300 мс с выключенным.

Мы провели некоторое профилирование, и, похоже, инициализация перевода занимает вечность.

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

Мы попытались обернуть блоки {% trans%} в другой тег шаблона, который кэширует переводы, но набирает только пару мс, и страницы на самом деле не кэшируются (за исключением переводов, конечно).

У кого-нибудь есть опыт работы с этим и / или несколько советов о том, как сделать это быстрее? Или какие-нибудь ловушки, в которые мы могли бы попасть?

Ответы [ 2 ]

3 голосов
/ 15 июля 2010

Кажется, L10N (новый в django 1.2) был грешником.Мы решили это, не включив его (поскольку мы везде используем форматы ISO).

Вероятно, следует сообщить об этом django ..: -)

1 голос
/ 15 июля 2010

Создайте свои собственные кэши и попробуйте кэширование фрагментов шаблона - связанные документы показывают, как вы можете использовать его с i18n

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...