2
我有一個Python腳本,它將一些日誌數據導入到StringIO
對象中,然後逐行讀取數據並將它們輸入到數據庫表中。腳本在迭代後需要相當長的時間。要解釋一下,運行1500個日誌需要1.6秒,而通過3500個日誌需要約1分鐘16秒,然後運行1100個日誌需要20秒!Python腳本運行時間更長
我的腳本佈局如下:
for dir in dirlist:
file = StringIO.StringIO(...output from some system command to get logs...)
for line in file:
ctr+=1
...
do some regex matches and replacements
...
cursor.insert(..."insert query"...)
if ctr >= 1000:
conn.commit() # commit once every 1000 transactions
我強烈懷疑性能在數據庫級別下降。如果您停止並每1000個項目重新啓動腳本,性能是否仍然下降? – nOw2
我同意。但是,如果沒有「做一些正則表達式匹配和替換」的實際代碼細節,它就會留下一個疑問! –
直到現在,我已經試過一次運行腳本。我會嘗試對每個目錄運行一次,並且看看它是如何執行的 – mavili