2016-08-24 46 views
0

我想從python中的串口獲取採樣。但如果我運行一個測試代碼來知道它的速率,python會給我不同的值!通常每秒約24000次。但有時這些代碼只能運行14000次。什麼是最大的差異原因?如果我想要取樣100萬我該怎麼辦?在python中運行速度不同

這是用於測試運行速度的示例代碼:

import time 

def g(start=0, stop=5, step=1): 
while start < stop: 
    yield start 
    start += step 


t1 = time.time() 
t2 = t1 + 1 

for item in g(10,1000000,1): 
    print(item) 
    t1 = time.time() 
    if t1 > t2: 
     break 

回答

3

調查timeit模塊,它被設計爲這樣的應用程序。基準必須在非常可控的條件下運行,以達到可重複的目的。 timeit多次運行您的代碼,併爲您提供最佳結果。通常,較慢的性能表明您的計算機正在與基準測試同時運行一些其他任務。

0

您將在Python中運行代碼時總會有一些時間差異,這是因爲您的CPU的CPU資源爲gives以運行您的腳本。你必須做幾次嘗試並計算它的平均時間。

0

我是@ 15000首次執行,然後以防萬一28000 總體結果主要是

  • 你的CPU負載
  • 緩存命中取決於/錯過
  • RAM的存取時間

但在你的情況下,它是大部分執行時間的打印。因此,打印標準輸出時間是導致變化的原因。

試試這個:

for item in g(10,100000000,1): 
#print(item) 
t1 = time.time() 
if t1 > t2: 
    print(item) #print only the last 
    break 
相關問題