为什么同时读取多个文件比顺序读取要慢?

为什么同时读取多个文件比顺序读取要慢?,第1张

为什么同时读取多个文件比顺序读取要慢?

看起来您受I / O约束:

在计算机科学中,I /
O绑定是指一种条件,其中完成计算所需的时间主要由等待输入/输出 *** 作完成所花费的时间来确定。这与受CPU约束的任务相反。当请求数据的速率比消耗数据的速率慢,或者换句话说,请求数据花费的时间多于处理数据的时间时,就会出现这种情况。

您可能需要让主线程进行读取,并在子进程可用时将数据添加到池中。这与使用有所不同

map

当您一次处理一行并且输入被拆分时,您可以

fileinput

用来遍历多个文件的行,并映射到函数处理行而不是文件:

一次传递一行可能太慢,因此我们可以要求map传递块,并可以进行调整,直到找到最佳点为止。我们的函数解析了几行:

def _parse_coreset_points(lines):    return Points([_parse_coreset_point(line) for line in lines])def _parse_coreset_point(line):    s = line.split()    x, y = [int(v) for v in s]    return CoresetPoint(x, y)

而我们的主要功能是:

import fileinputdef getParsedFiles(directory):    pool = Pool(2)    txts = [filename for filename in os.listdir(directory): if filename.endswith(".txt")]    return pool.imap(_parse_coreset_points, fileinput.input(txts), chunksize=100)


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5631570.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-15
下一篇 2022-12-15

发表评论

登录后才能评论

评论列表(0条)

保存