Roc*_*oll 7 python multithreading multiprocessing
我目前正在从 FileNameList 的路径列表中提取 .txt 文件,该文件正在运行。但我的主要问题是,文件太多时速度太慢。
我正在使用此代码打印 txt 文件列表,
import os
import sys
#FileNameList is my set of files from my path
for filefolder in FileNameList:
for file in os.listdir(filefolder):
if "txt" in file:
filename = filefolder + "\\" + file
print filename
Run Code Online (Sandbox Code Playgroud)
任何有关线程/多进程并使其快速阅读的帮助或建议都将被接受。提前致谢。
所以你的意思是没有办法加快速度?,因为我的场景是读取一堆文件然后读取它的每一行并将其存储到数据库中
优化的第一条规则是问问自己是否应该打扰。如果您的程序只运行一次或多次优化,那是在浪费时间。
在第二条规则是,你做任何事情之前,测量问题所在;
编写一个简单的程序,顺序读取文件,将它们分成几行并将它们填充到数据库中。在分析器下运行该程序以查看该程序花费大部分时间的地方。
只有这样你才知道程序的哪一部分需要加速。
不过,这里有一些提示。
mmap
.multiprocessing.Pool
将多个文件的读取分布在不同的内核上。但是,来自这些文件的数据最终将进入不同的进程,并且必须使用 IPC 发送回父进程。这对于大量数据具有显着的开销。多线程或多处理不会加快速度;你的瓶颈是存储设备。
归档时间: |
|
查看次数: |
6533 次 |
最近记录: |