我试图实现的是从给定的特定目录中提取文件的元数据,并使用python的sqlite3将其存储在.db文件中。我使用python的多处理来获得对每个文件的一些散列值的并行计算的优势(每次为每个文件使用一个核心),尽管串行代码的计算时间总是比并行代码少。我在许多有2-8gbram和2-4核的机器上进行了测试,从许多文件(其中一些文件的大小超过1gb)收集数据,结果总是一样的。下面我将向您展示串行和并行python脚本,任何想法都将非常有用。在
多处理脚本:import itertools
import multiprocessing
from multiprocessing import Pool
import os, sys
import stat
import sqlite3
import time
import hashlib
def worker(filename):
conn = sqlite3.connect('metadata.db', timeout=30.0)
c = conn.cursor() #database cursor
result = os.stat(filename) #stat instance to get info about the current file
print("Gathering metadata for file: " + filename)
split_filename = filename.split('/')
path_to_file = '/'.join(split_filename[:-1])
file_name = split_filename[