Python大目录
我正在使用python读取可能包含许多执行跟踪文件的目录。每个文件通常很小(几行,通常小于1Ko) 我的脚本每秒读取几百个文件,但当目录中的文件数超过~60k时,程序会减慢速度,每秒仅读取很少的文件(3/4):Python大目录,python,python-3.x,filesystems,ext4,Python,Python 3.x,Filesystems,Ext4,我正在使用python读取可能包含许多执行跟踪文件的目录。每个文件通常很小(几行,通常小于1Ko) 我的脚本每秒读取几百个文件,但当目录中的文件数超过~60k时,程序会减慢速度,每秒仅读取很少的文件(3/4): def read_traces(path: str): files = glob.glob("*.ktest") traces = [] for f in files: replay_cmd = "KTEST_FILE="
def read_traces(path: str):
files = glob.glob("*.ktest")
traces = []
for f in files:
replay_cmd = "KTEST_FILE=" + f + " ./replay.bc"
p = sp.Popen(replay_cmd, stdout=sp.PIPE, stderr=sp.PIPE, shell=True)
out, _ = p.communicate()
trace = Trace(f, out.decode("UTF-8"))
traces.append(trace)
return traces
这是Python的问题还是文件系统(ext3)的问题?我如何解决这个问题 不看剧本很难知道。如果需要帮助,请发布。使用线程或多处理(映射/减少)解决您的问题。不要以顺序方式处理目录中的所有文件。查看每个文件的实际操作会很有帮助。你是在对文件名执行操作,还是真的打开了它?我用对文件的计算编辑了这篇文章。这是Klee的ktest,我重播每个文件的执行跟踪。