2

我有一个 Python 脚本,它将一些日志数据导入到一个StringIO对象中,然后逐行读取其中的数据,并将它们输入到数据库表中。经过一些迭代后,脚本需要相当长的时间。解释一下,运行 1500 条日志需要 ~1.6 秒,运行 3500 条日志需要 ~1m16s,然后运行 ​​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
4

1 回答 1

1

使用 cProfile 来分析您的脚本并找出实际花费的时间。在没有任何细节的情况下仅仅猜测时间花费在哪里通常是没有帮助的。分析将告诉您性能问题是与某些正则表达式匹配的东西还是插入查询有关。

于 2013-06-20T08:55:25.470 回答