实时解析日志时减少CPU使用率

时间:2015-11-05 10:29:51

标签: python python-2.7 python-3.x

我正在使用Python创建一个实时跟踪日志文件的程序,我的代码如下:

import time
with open('/Users/alexandrelara/Library/Logs/Unity/Player.log') as f:
    while True:
        line = f.readline()
        if line:
            if line.startswith('[Zone]') and "tag=PLAYSTATE value=LOSING" in line:
                print(line)
                time.sleep(1)
                continue

问题是Python进程正在使用大约100%的CPU,正如您在此图像中看到的那样:

Python Process - CPU Usage

让线程休眠1秒没有帮助,高于此值的值不会给我我想要的结果,因为它是一个游戏日志,每个动作都会在日志中产生很多行。

有没有办法改善CPU使用率?或者我不应该使用Python吗?

1 个答案:

答案 0 :(得分:5)

尝试在else块上使用sleep:

import time
with open('/Users/alexandrelara/Library/Logs/Unity/Player.log') as f:
    while True:
        line = f.readline()
        if line:
            if line.startswith('[Zone]') and "tag=PLAYSTATE value=LOSING" in line:
                print(line)
        else:
            time.sleep(1)