如何使用 Django 的缓存模板加载器显著提高 Django 站点的速度
如何使用 Django 的缓存模板加载器显著提高 Django 站点的速度
原文:https://medium.com/hackernoon/are-you-using-djangos-cached-template-loader-9e1145a7d610
我在剖析一个 Django 1.8 站点时,注意到了一些奇怪的事情。
函数django.template.engine.get_template被调用了 50 次,总共花费了 229 毫秒,几乎是页面加载时间的一半。
该网站使用大量的模板标签来呈现页面上的不同元素,比如广告位置和相关的故事框。
Django 的模板系统会在每次渲染时读取并编译一个模板。这种情况发生得很快,但是当你在每个页面上呈现多个模板时,它会累加起来,就像我的情况一样。
在四处寻找解决方案后,我发现了django.template.loaders.cached.Loader,当它被启用时,将编译好的模板存储在内存中,减少了检索模板的时间。
一旦在网站上启用了缓存模板加载器,django.template.engine.get_template的累积时间就下降到了 1 毫秒,减少了大约 200 毫秒的页面加载时间
Django 1.2 中引入了缓存模板加载器,但默认情况下并未启用,这很容易被忽略。
在启用缓存模板加载器之前,您需要确保所有自定义的模板标签都是线程安全的。
从开始,当DEBUG设置为假时,Django 1.11 缓存模板加载器默认启用。
如果你还在使用老版本的 Django,并且使用大量的模板标签,启用缓存模板加载器,它可以极大地提高你的站点速度。
黑客中午是黑客如何开始他们的下午。我们是 AMI 家庭的一员。我们现在接受投稿并乐意讨论广告&赞助机会。
要了解更多信息,请阅读我们的“关于”页面 , 喜欢/在脸书给我们发消息,或者简单地,发推文/DM @HackerNoon。