5

for ループにネストされた多数のインクルードを含むテンプレートがあります。ページのさまざまな部分を個別のテンプレート ファイルに分割しています。これは、ビューごとにさまざまな方法でそれらをつなぎ合わせて再利用するためです。

例: {% for user in users %} {% include "userDetail.html" %} {% endfor %}

私たちのデータベースには約 40,000 のレコードがあります。問題をテンプレート システムに特定しました。render_to_response の実行には約 11 秒かかります。Django がテンプレートをキャッシュしていなかったのではないかと考えたので、I/O の問題だったのかもしれません。

インクルードがまったくないように、テンプレートの 1 つを平坦化し、約 5 秒短縮しました。しかし、多くのテンプレート コードを再利用する状況では、これはあまり役に立ちません。

この問題の解決策を知っている人はいますか? または、render_to_response に時間がかかる理由を他に考えている人はいますか?

[編集] Django のキャッシング テンプレート ローダーを有効にしましたが、約 1 秒しか節約できませんでした。テンプレートのフラット化は大幅に高速化されました。

4

2 に答える 2

0

Jinja2を試してみてください。私が読んだことから、Django のテンプレート ライブラリよりも ~10 倍高速です。

于 2012-06-07T01:22:22.623 に答える