栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

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

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

看起来您受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)


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/625685.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号