Python большой каталог - PullRequest
       67

Python большой каталог

0 голосов
/ 06 февраля 2020

Я использую python для чтения каталога, содержащего потенциально много файлов трассировки выполнения. Каждый файл обычно небольшой (несколько строк, обычно меньше 1 КБ).

Мой сценарий считывает несколько сотен файлов в секунду, но когда количество файлов в каталоге превышает ~ 60 КБ, программа замедляется и только несколько файлов (3/4) читаются в секунду:

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)? Как я могу решить это замедление?

...