Django字节码编译模板加载器
django-compiling-loader的Python项目详细描述
将django模板编译成python字节码的模板加载程序 以提高性能。
此包公开compiling_loader.Loader模板 装载机。此加载程序将编译由 将django转换为python字节码。如果无法生成标记,则返回 将被编译,它只计算模板节点。这个 回退方法意味着此加载器与现有的兼容。 装载机,即使你有很多自定义标记。
编译器是模块化的,并围绕Python3.4构建 singledispatch函数,这意味着它可以很容易地扩展到 如果您有昂贵的自定义标记,则支持您自己的标记 从编译中受益。
加载程序本身不做任何缓存;它与 Django的内置缓存加载程序,以避免重新编译。
用法
安装django-compiling-loaderpython包并设置 TEMPLATE_LOADERS设置为以下值:
TEMPLATE_LOADERS=(('django.template.loaders.cached.Loader',[('compiling_loader.Loader',['django.template.loaders.filesystem.Loader','django.template.loaders.app_directories.Loader',]),]),)
如果你有其他的装载机,把它们放在 compiling_loader.Loaderlist以确保生成的 模板被编译。
兼容性
加载程序已经用django 1.7进行了测试,并且需要python 3.4条。在呈现兼容性方面,此项目包含 比较 标准django模板计算和此编译器。到目前为止,没有 发现了不相容性。
表演
test_proj/run_benchmarks.py脚本呈现一个小的继承 基于模板的次数很多,而且 继承和包含的模板几次。下面是一些 比较:
Template | Default | Compiled | Speedup |
---|---|---|---|
Small | 0.21 ms | 0.10 ms | 2,1x |
Large | 125 ms | 42 ms | 3,0x |