2010-11-20 2 views

답변

0

진자는 Pythonic (더 많은 유연성)이며 Django 템플릿 시스템보다 빠르지 만 성능은 특히 dev 스킬 및 기타 매개 변수에 따라 다릅니다.

으로는 신사의 질문에 설명 : 캐시 된 신사 템플릿을 가지고 그것을 신사 로더를 장고의 cached.Loader를 사용하여 전달할 수

http://jinja.pocoo.org/docs/faq/#how-fast-is-it

+0

내가 사용할 수 없습니다. http://stackoverflow.com/q/10949388/731963 –

+0

장고에서 Jinja2로 모든 템플릿을 다시 작성하고 인상적인 속도 향상을 얻었지만 전에 장고 템플릿 용 캐시 된 로더를 사용하지 않았습니다. . – Evgeny

0

이것은, 좋은 질문,하지만 잘못된 이분법이다.

두 번째로, 템플릿 캐싱은 단지 속도를 향상시키는 것이 아닙니다. DEBUG = False 일 때 캐시 된 Loader를 권장합니다. 따라서 개발할 때 템플릿을 쉽게 반복 할 수 있지만 프로덕션의 경우 캐싱 된 로더가 중요합니다. 캐싱하지 않으면 템플릿이 일정 기간 동안 코드와 동기화되지 않을 수 있기 때문입니다. 전개.

예를 들어보기의 컨텍스트를 변경하고 템플릿을 업데이트하고 커밋한다고 가정 해 보겠습니다. 이제 서버를 당긴 다음 서버를 다시 시작하면 git pulling과 restarting 사이에 이전 뷰 코드로 새 템플릿을 제공하기 때문에 뷰가 500이됩니다. 초당 여러 건의 요청이 발생하는 경우 프로덕션 배포 방법이 여러 디렉터리를 사용하여이를 제거하지 않는 한 프로덕션은 500 초가됩니다.

+2

정확히는 Django의 캐시 된 로더는 프로세스 내에서 메모리에 저장합니다. 따라서 서버를 다시 시작하면 새로운 템플릿이 생깁니다. 유일한 문제는 사용자 정의 태그가 스레드 안전하다는 것을 확인하는 것입니다. Jinja2의 템플릿이 캐시 된 로더와 함께 사용하기에 안전한 스레드로 간주되는지 확실하지 않습니다. – jlovison