【发布时间】:2016-08-12 11:16:13
【问题描述】:
我只是为approved="no" 模式寻找一些 Xliff 文件。我有一个 Shell 脚本和一个 Python 脚本,性能差异很大(一组 393 个文件,总共 3,686,329 行,Shell 脚本的用户时间为 0.1s,Python 脚本为 6.6s)。
壳牌:grep 'approved="no"' FILE
蟒蛇:
def grep(pattern, file_path):
ret = False
with codecs.open(file_path, "r", encoding="utf-8") as f:
while 1 and not ret:
lines = f.readlines(100000)
if not lines:
break
for line in lines:
if re.search(pattern, line):
ret = True
break
return ret
有什么想法可以通过多平台解决方案提高性能?
结果
以下是应用一些建议的解决方案后的几个结果。
测试在 RHEL6 Linux 机器上运行,使用 Python 2.6.6。
工作集:393 个 Xliff 文件,共 3,686,329 行。
数字是以秒为单位的用户时间。
grep_1(io,加入 100,000 个文件行):50 秒
grep_3(mmap):0.7 秒
Shell 版本 (Linux grep): 0.130s
【问题讨论】:
标签: python performance grep