# 开发记录 ## 待办列表 * 多进程多线程使用tqdm显示进度 ## 开发进度 * 2024-01-17 - 增加多进程初始化 - 长尾词聚合增加使用多线程 * 2024-01-16 - 增加使用redis,提高性能 * 2023-12-15 - 项目重新启动 * 2023-07-05 - 增加文件选择功能 * 2023-07-06 - 增加正则匹配不限制位置 * 2023-07-08 - 增加支持4级筛选;调整界面结构,增大结果区域 - 增加历史记录功能,能打开上一次的位置 - 增加显示筛选数量和结果数量 ## 进程相关 1. 普通的只有一个进程 2. 普通使用ProcessPoolExecutor只有4个进程 3. 如果使用Manager会额外多一个进程 ## 文件位置相关 1. with open 与 mmap 读取到的每行的位置是一样的 ## 文件读取速度比较 1. 从单进程的角度看:仅以顺序读文件来说mmap的速度快很多,如果对内容进行编码,速度也较with open快一点 2. 从多进程的角度看:仅以顺序读文件来说mmap的速度快很多,如果对内容进行编码,速度也较with open快一点 3. 仅以顺序读取同一个文件,with open 与 mmap 均是 单进程读取一次的速度 比 多进程读取一次要快,而且with open的差距更明显 4. 多进程分段读取中 mmap比with open快很多,with open非常的慢 * 总结: * mmap(单)>>mmap(单,对内容进行编码)>with open(单) * mmap(多)>>mmap(多,对内容进行编码)>with open(多) * (这个结论没啥用处,因为多进程一般是完成不同的任务)仅以顺序读取同一个文件,with open 与 mmap 均是 单进程读取一次的速度 比 多进程读取一次要快,而且with open的差距更明显 * 多进程分段读取中 mmap比with open快很多,with open非常的慢