說,我有一個帶有照片庫的頁面。每個縮略圖例如具有照片,國家,作者等等。我使用模板標籤(它加載指定的模板)渲染這些項目/小部件 - 因爲DRY(我在頁面上的不同位置單獨使用這些項目/小部件)而這樣做。Django - 使用templatetags呈現很多模板很慢
而且速度很慢。
我一直在使用的Django調試工具欄進行一些剖析:
SQL Queries: default 84.81 ms (147 queries)
但是:
Total CPU time: 5768.360 msec
這是等待太久。
經過一番分析發現,主要的罪魁禍首是模板工程。
當我想顯示例如150張照片,600個相關項目/小部件正在通過模板呈現。這意味着600個I/O操作甚至更多。將這些小部件移至主模板可解決問題,但不保留DRY。
所以我的問題是如何可以避免這種行爲?是幹還是慢或者不幹幹快? 我寧願乾和快...
你能提供模板標籤代碼嗎? – 2012-05-01 17:24:56
在查詢上花費的時間相對較少。但是,ORM需要更多時間來生成這些查詢並將結果解析到模型實例中 – 2012-05-01 17:27:38