我编写了一个Python脚本,它读取1GB的json文件并将内容写入多个文件。它在我的工作笔记本电脑上运行得非常慢,几乎需要30分钟才能完成。同事们表示,这可能是由于防病毒扫描脚本创建的新文件。我添加了我的
项目
文件夹以及python.exe进程添加到Windows安全设置中的“排除”列表(病毒和威胁保护)。这使得执行时间降到了5分钟,仍然很慢。同样的脚本在我的个人笔记本电脑上运行需要16秒(规格较低)。我也没有在上面使用虚拟环境。
是否还有其他与python相关的文件夹或进程需要添加到排除列表中?我想先解决这个问题,然后才能开始处理更大的文件。
当我运行代码或任何其他创建和写入文件的代码时,我注意到下面的两个Windows进程会出现峰值。
工作笔记本电脑详细信息:
-
蟒蛇3.9
-
IDE:虚拟代码
-
处理器Intel(R)Core(TM)i7-8665U CPU@1.90GHz 2.11 GHz
-
已安装的RAM 32.0 GB(可用容量31.8 GB)
-
系统类型64位操作系统,基于x64的处理器
添加我的python代码以防万一。
import orjson as json
import time
def json_generator():
with open(\'json_file.json') as file:
for line in file:
yield json.loads(line)
def main():
_start = time.perf_counter()
payload = json_generator()
file_num = 1
for num, item in enumerate(payload, 1):
file_json = open(fr'./output/{file_num}.json', 'ba+')
file_json.write(json.dumps(item))
file_json.write(b'\n')
if num % 10_000 == 0:
file_json.close()
file_num += 1
print('time elapsed...', time.perf_counter()-_start)
if __name__ == "__main__":
main()
我试过对此进行研究,但大多数条目都描述了将您的项目文件夹添加到“排除”列表中,我已经这样做了。