模板渲染慢在哪?第一次请求为什么慢?render_template_string 能不能用在热点路径?include 和 macro 有多大代价?这篇逐项量出来。
第一次(含编译)2.51 ms | 之后的渲染中位数 1.36 ms | 编译约占 1.15 ms
上一篇:Flask Profiler;下一篇:JSON 序列化性能。
渲染 1 项的小模板:文件模板 11 µs | render_template_string 343 µs(约 31 倍)
直接循环(自动转义) 1.36 ms
|safe 跳过转义 1.61 ms
每项 {% include %} 3.58 ms
每项调用 macro 2.85 msauto_reload=False 小模板渲染 12 µs auto_reload=True 小模板渲染 14 µs
list_include.html 渲染 2 次,单次 0.95 ms (信号只在顶层 render_template 触发一次;include 进来的 row.html 不单独触发,它的耗时包含在 list_include.html 里)