2014-07-26 7 views
5

I'v कई स्थितियों में मेरे ऐप प्रोफाइल और मैं, उदाहरण डंपDjango: कैश की गई टेम्पलेट लोडर को सक्षम करने से

61323 function calls (59462 primitive calls) in 0.827 seconds 

    Ordered by: cumulative time 

    ncalls tottime percall cumtime percall filename:lineno(function) 
     1 0.000 0.000 0.827 0.827 /home/haki/src/CalcSite/calc/views.py:279(home) 
     1 0.000 0.000 0.815 0.815 /usr/local/lib/python2.7/dist-packages/django/shortcuts/__init__.py:31(render) 
     3/1 0.000 0.000 0.814 0.814 /usr/local/lib/python2.7/dist-packages/django/template/loader.py:151(render_to_string) 
     4/1 0.000 0.000 0.808 0.808 /usr/local/lib/python2.7/dist-packages/django/template/base.py:136(render) 
     5/1 0.000 0.000 0.808 0.808 /usr/local/lib/python2.7/dist-packages/django/template/base.py:133(_render) 
    286/1 0.002 0.000 0.808 0.808 /usr/local/lib/python2.7/dist-packages/django/template/base.py:836(render) 
    714/2 0.000 0.000 0.808 0.404 /usr/local/lib/python2.7/dist-packages/django/template/debug.py:76(render_node) 
     1 0.000 0.000 0.808 0.808 /usr/local/lib/python2.7/dist-packages/django/template/loader_tags.py:100(render) 
     6 0.000 0.000 0.803 0.134 /usr/local/lib/python2.7/dist-packages/django/template/loader_tags.py:48(render) 

docs सक्षम करने कैश्ड के अनुसार निष्कर्ष यह है कि मेरी बोतल गर्दन टेम्पलेट प्रतिपादन है के साथ आया था टेम्पलेट्स प्रदर्शन पर एक महत्वपूर्ण प्रभाव हो सकता है। तो मैं इस सेटिंग

TEMPLATE_LOADERS = (
    ('django.template.loaders.cached.Loader', (
     'django.template.loaders.filesystem.Loader', 
     'django.template.loaders.app_directories.Loader', 
    )), 
) 

मेरे सभी टेम्पलेट्स app/templates में हैं जोड़ने की कोशिश की। मैं भी बहुत मच टेम्पलेट टुकड़ों का उपयोग नहीं कर रहा हूं \ और मेरे सभी ऐप टैग (~ 4) थ्रेड सुरक्षित हैं। इस सत्र में डीबी ट्रेस को देखते हुए मुझे 9एमएस में 6 प्रश्न लौट आए - यह पकड़ नहीं है।

मुझे प्रदर्शन रिपोर्ट में कोई अंतर नहीं दिखता है। क्या मुझसे कोई चूक हो रही है ? क्या मैं इसे गलत तरीके से जांच रहा हूं?

+0

आप ctime द्वारा छँटाई कर रहे हैं इसलिए यदि आपके टेम्पलेट टैग महत्वपूर्ण (डेटाबेस का उपयोग) की तरह कुछ भी यह शामिल किया जाएगा क्या कर रहे हैं में रखें। आपकी सूची की अंतिम पंक्ति (blocktag.render) फ़ैशन जैसे पेड़ में अन्य टेम्पलेट अनुभाग प्रस्तुत करती है, इसलिए अन्य सभी शामिल होंगे। एक पूर्ण प्रोफ़ाइल सूची दें और हम जहां मुद्दा Django डॉक्स से – dalore

उत्तर

5

कैश किए गए टेम्पलेट लोडर को अभी भी टेम्पलेट्स प्रस्तुत करने की आवश्यकता है। आईओ को बचाने, बचत प्रत्येक बार फाइल सिस्टम से टेम्प्लेट को पढ़ने से नहीं आती है।

यदि आप टेम्पलेट को कैश करना चाहते हैं, तो {% cache%} टेम्पलेट टैग देखें। लेकिन ध्यान रखें कि आपको सही कुंजी शामिल करने की आवश्यकता है।

+0

FYI है देखने के लिए सक्षम हो सकता है: "Django 1.11 में परिवर्तित:। स्वत: कैश की गई टेम्पलेट लोडर है जब डिबग झूठी जोड़ा गया है के लिए सक्षम करने" – colins44

4
Django से

1.8+ आप अब OPTIONS block of the TEMPLATES setting.

+0

एफवाईआई, इसके लिए सिंटैक्स ओपी क्या उपयोग करने की कोशिश कर रहा था उससे काफी अलग है। Https://docs.djangoproject.com/en/1.10/ref/templates/api/#django.template.loaders.cached.Loader देखें –

संबंधित मुद्दे