我在通過其query()函數在couchdb-python中使用ad-hoc JavaScript映射函數。有沒有辦法讓查詢需要處理?是否有一種方法可以使用couchdb-python獲取針對CouchDB的臨時查詢的毫秒時間?
我試過對腳本進行計時,但是對我來說很明顯我得到的時間不正確。如果我迭代query()函數返回的ViewResult並打印所有結果,我相信我會得到一個更接近實際的答案,但我不希望打印被包含在我的計時中。
任何人有任何想法?
非常感謝!
我在通過其query()函數在couchdb-python中使用ad-hoc JavaScript映射函數。有沒有辦法讓查詢需要處理?是否有一種方法可以使用couchdb-python獲取針對CouchDB的臨時查詢的毫秒時間?
我試過對腳本進行計時,但是對我來說很明顯我得到的時間不正確。如果我迭代query()函數返回的ViewResult並打印所有結果,我相信我會得到一個更接近實際的答案,但我不希望打印被包含在我的計時中。
任何人有任何想法?
非常感謝!
這是我在我的應用程序中記錄時間的方法。
from datetime import *
lastTime = datetime.now()
dosomestuff()
pollTime = datetime.now()
diff = pollTime - lastTime
print diff.total_seconds()
#or if not python2.7 (td.microseconds + (td.seconds + td.days * 24 * 3600) * 10**6)/10**6
使用view()函數在數據庫中運行永久視圖。它更高效。在很多情況下,臨時可能會非常昂貴。
我完全不熟悉couchdb接口,但是你看過'timeit'模塊嗎?也許這將有助於? – tMC 2011-05-19 20:23:07
@tMC - 非常感謝您的建議,但我擔心它不會做到這一點。問題是,我似乎不得不對ViewResult做些什麼,以便有時間去衡量。在pymongo(用於MongoDB)中,我可以執行explain()['millis']來獲取毫秒數,而不必遍歷結果集。 到目前爲止,我所提出的最佳解決方案是遍歷ViewResult並在循環中執行_pass_,但這不是非常漂亮,我真的想避免迭代。 – Robin 2011-05-19 20:45:21