我想記錄一些東西在真正的牆壁時間需要多長時間。目前,我這樣做:如何在python中獲得單調持續時間?
startTime = time.time()
someSQLOrSomething()
print "That took %.3f seconds" % (time.time() - startTime)
但是,將失敗(產生不正確的結果),如果SQL查詢(或者不管它是什麼),運行時調整的時間。
我不想僅僅對它進行基準測試。我想將它登錄到實時應用程序中,以便查看現場系統的趨勢。
我想要的東西像clock_gettime(CLOCK_MONOTONIC,...),但在Python中。最好不用編寫一個調用clock_gettime()的C模塊。
嗯,我真的不知道該怎麼通常它實際上是調整的。我運行NTP。但是使用單調時鐘,我不會遇到像Oracle RAC錯誤那樣在時間倒退時重新啓動系統的情況。除了小的NTP調整之外,還有可以前後移動的閏秒。 – Thomas 2009-07-30 12:41:31
S.Lott:不正確。 「閏秒是正面或負面的一秒調整[...]」。查找起來微不足道。這是維基百科上「閏秒」文章的第一句話。所以當添加一個閏秒時,NTP會重新調整你的系統時間(因爲你的系統速度很快,不計數23:59:60),這意味着基於time.time()的測量可能是負面的。相信我,由於上面提到的上個年頭的錯誤,許多Oracle服務器都重新啓動。 我剛剛用Oracle作爲例子,其中一些程序無法處理時間重新調整。 – Thomas 2009-07-30 22:18:20
我不知道爲什麼(未打補丁)Oracle 10會這樣做。它只是,Oracle(公司)證實了這一點。 – Thomas 2009-07-30 22:20:19