gpt4 book ai didi

Python SequenceMatcher 开销 - 100% 的 CPU 使用率和非常缓慢的处理

转载 作者:太空宇宙 更新时间:2023-11-04 11:05:07 28 4
gpt4 key购买 nike

我正在使用 difflib 比较两个目录中的文件(连续年份的版本)。首先,我使用 filecmp 查找已更改的文件,然后迭代使用 difflib.SequenceMatcher 比较它们并生成 html 差异,如 here 所述。 .

但是,我发现程序运行时间太长,python 使用了 100% 的 CPU。在时间分析中,我发现 seqm.get_opcodes() 调用一直在占用时间。

如有任何见解,我们将不胜感激。谢谢!

代码:

#changed_set contains the files to be compared
for i in changed_set:
oldLines = open(old_dir +"/" + i).read()
newLines = open(new_dir +"/" + i).read()
seqm = difflib.SequenceMatcher(lambda(x): x in string.whitespace, oldLines, newLines)
opcodes = seqm.get_opcodes() #XXX: Lots of time spent in this !
produceDiffs(seqm, opcodes)
del seqm

最佳答案

我的答案是完全不同的问题解决方法:尝试使用像 git 这样的版本控制系统来调查多年来目录是如何变化的。

从第一个目录创建一个存储库,然后将内容替换为下一年的目录并将其作为更改提交。 (或将 .git 目录移动到下一年的目录,以节省复制/删除)。重复。

然后运行 ​​gitk,您将能够看到树的任意两个修订版之间发生了什么变化。要么只是二进制文件发生了变化,要么是文本文件的差异。

关于Python SequenceMatcher 开销 - 100% 的 CPU 使用率和非常缓慢的处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1870646/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com