我有一个Python脚本,它将一些日志数据导入StringIO
对象,然后逐行读取数据,并将它们输入到数据库表中。经过一些迭代后,脚本需要相当长的时间。要解释一下,运行1500个日志需要大约1.6秒,运行3500个日志需要大约1个16秒,1100个日志需要20秒!
我的脚本布局如下:
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
答案 0 :(得分:1)
使用cProfile配置脚本并找出实际花费的时间。在没有任何细节的情况下猜测花费的时间通常并不常见。分析将告诉您性能问题是否与某些正则表达式匹配内容或插入查询有关。