我很好奇——随着 django 1.2 中缓存模板加载器的引入,性能与最新的 Jinja2 相比如何?
有没有人尝试过运行测试?
谢谢。
我很好奇——随着 django 1.2 中缓存模板加载器的引入,性能与最新的 Jinja2 相比如何?
有没有人尝试过运行测试?
谢谢。
这是一个很好的问题,但却是错误的二分法,因为您可以使用 Django 的 cached.Loader 并将其传递给 Jinja Loaders 以缓存 Jinja 模板。
其次,模板缓存不仅仅是为了速度。我建议在 DEBUG=False 时使用缓存的加载器,这样您可以在开发时轻松地迭代模板,但对于生产来说,缓存的加载器很重要,因为如果不缓存模板,您的模板可能在中间的一段时间内与您的代码不同步-部署。
例如,假设您更改视图的上下文并更新模板,然后提交。现在,如果您 git pull 然后重新启动服务器,在 git pull 和重新启动之间的时间,视图将 500,因为您正在使用旧视图代码提供新模板。如果您每秒收到多个请求,这将导致生产 500,除非您的生产部署方法通过使用多个目录来避免这种情况。
Jinja 更 Pythonic(更灵活)并且可能比 Django 模板系统更快,但性能尤其取决于您的开发技能和其他参数。
正如 Jinja 常见问题解答中所述: