測試資料庫連線可以使用
from django.db import connection
在執行完資料庫搜尋後
print connection.queries
可以看到每次搜尋的時間和內容
問題
之前的**中基本都是先 tem = model.objects.filter(), 然後再寫乙個for loop來迴圈tem。有django的query是lazy的,就是filter之後其實並沒有從databases中取出東西,只有實際使用時候才完成搜尋。如果出現
for
forfor t in tem:
m = t.attr
那麼就是有數百次的資料庫搜尋任務,實際執行時間很慢,對於我建立的很小的測試資料集合,600次搜尋用了感覺上0.5秒(實際可能少點)。
解決把搜尋結果先cache到memory中,再用for loop去呼叫。
用到query中的values()和values_list(),把結果搜尋出來
model.objects.filter(……).values('', '')引數是你需要的屬性字段
或者values_list('', '')
這樣就可以簡單的把connect.queries從600降到4了。(in my work)
以上。
在Unity 5中如何減少Draw Call
本文為大家分享unity 5中標準著色器的簡單概念,並分析如何減少draw call unity 5中顯示為setpass calls,下文的draw call皆表示setpass calls 標準著色器是基於物理的著色器,可以正確渲染各種光照條件下的效果,支援跨平台,擁有可以啟用不同功能著色器的紋...
在使用INV中如何減少記憶體的消耗
1 使用大型部件檔案時,請關閉無需開啟的所有應用程式,以減少與硬碟的頁面置換。2 通過最小化圖紙上的檢視數量,使工程 件的大小盡可能小。例如,有乙個主部件基礎檢視,其他投影檢視 區域性檢視或剖檢視不多於 4 個。3 最小化工程 件中的圖紙數量。4 在部件檔案中,請盡可能關閉螺旋和彈簧的可見性。5 使...
如何追中異常,減少debug時間
今天在debug的時候,又出現了空指標,我這次真的火了!每次遇到空指標,net給出的資訊總是非常的少,我根本不知道是 throw出來的,只能反覆檢查 思路大概是 獲取exception的呼叫堆疊。獲取exception相關的這個方法的方法的il 結合excpetion的il偏移量和方法的il,把呼叫...