mmap 与 fileinput 的优点

2024-03-24

我读到 mmap 比 fileinput 有优势,因为它会将页面读入内核页面缓存并在用户地址空间中共享该页面。而 fileinput 实际上将一个页面带入内核并将一行复制到用户地址空间。因此,文件输入会产生额外的空间开销。

所以,我打算转向 mmap,但我想从高级 python 黑客那里知道它是否可以提高性能?

如果是这样,是否有类似的使用 mmap 的 fileinput 实现?

如果您知道的话,请向我指出任何开源代码。

谢谢


mmap 获取一个文件并将其保存在 RAM 中,以便您可以像字节数组或大数据结构一样对其进行索引。

如果您以“随机访问”方式访问文件,那就要快得多——即执行大量 fseek()、fread()、fwrite() 组合。

但是,如果您只是读入文件并处理每一行一次(比如说),那么它不太可能明显更快。事实上,对于任何合理的文件大小(请记住,使用 mmap 时,所有文件都必须适合 RAM——否则会发生分页,从而开始降低 mmap 的效率),它可能是无法区分的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

mmap 与 fileinput 的优点 的相关文章

  • Django 代理模型的继承和多态性

    我正在开发一个我没有启动的 Django 项目 我面临着一个问题遗产 我有一个大模型 在示例中简化 称为MyModel这应该代表不同种类的物品 的所有实例对象MyModel应该具有相同的字段 但方法的行为根据项目类型的不同而有很大差异 到目
  • 将 Matplotlib 误差线放置在不位于条形中心的位置

    我正在 Matplotlib 中生成带有错误栏的堆积条形图 不幸的是 某些层相对较小且数据多样 因此多个层的错误条可能重叠 从而使它们难以或无法读取 Example 有没有办法设置每个误差条的位置 即沿 x 轴移动它 以便重叠的线显示在彼此
  • OpenCV Python cv2.mixChannels()

    我试图将其从 C 转换为 Python 但它给出了不同的色调结果 In C Transform it to HSV cvtColor src hsv CV BGR2HSV Use only the Hue value hue create
  • 如何在flask中使用g.user全局

    据我了解 Flask 中的 g 变量 它应该为我提供一个全局位置来存储数据 例如登录后保存当前用户 它是否正确 我希望我的导航在登录后在整个网站上显示我的用户名 我的观点包含 from Flask import g among other
  • 使用带有关键字参数的 map() 函数

    这是我尝试使用的循环map功能于 volume ids 1 2 3 4 5 ip 172 12 13 122 for volume id in volume ids my function volume id ip ip 我有办法做到这一点
  • Django:按钮链接

    我是一名 Django 新手用户 尝试创建一个按钮 单击该按钮会链接到我网站中的另一个页面 我尝试了一些不同的例子 但似乎没有一个对我有用 举个例子 为什么这不起作用
  • 从字符串中删除识别的日期

    作为输入 我有几个包含不同格式日期的字符串 例如 彼得在16 45 我的生日是1990年7月8日 On 7 月 11 日星期六我会回家 I use dateutil parser parse识别字符串中的日期 在下一步中 我想从字符串中删除
  • 如何在 Python 中检索 for 循环中的剩余项目?

    我有一个简单的 for 循环迭代项目列表 在某些时候 我知道它会破裂 我该如何退回剩余的物品 for i in a b c d e f g try some func i except return remaining items if s
  • PyUSB 1.0:NotImplementedError:此平台不支持或未实现操作

    我刚刚开始使用 pyusb 基本上我正在玩示例代码here https github com walac pyusb blob master docs tutorial rst 我使用的是 Windows 7 64 位 并从以下地址下载 z
  • 使用 Tkinter 显示 numpy 数组中的图像

    我对 Python 缺乏经验 第一次使用 Tkinter 制作一个 UI 显示我的数字分类程序与 mnist 数据集的结果 当图像来自 numpy 数组而不是我的 PC 上的文件路径时 我有一个关于在 Tkinter 中显示图像的问题 我为
  • AWS EMR Spark Python 日志记录

    我正在 AWS EMR 上运行一个非常简单的 Spark 作业 但似乎无法从我的脚本中获取任何日志输出 我尝试过打印到 stderr from pyspark import SparkContext import sys if name m
  • 从 Flask 访问 Heroku 变量

    我已经使用以下命令在 Heroku 配置中设置了数据库变量 heroku config add server xxx xxx xxx xxx heroku config add user userName heroku config add
  • 如何在Python中获取葡萄牙语字符?

    我正在研究葡萄牙语 角色看起来很奇怪 我怎样才能解决这个问题 代码 import feedparser import random Vou definir os feeds feeds conf feedurl http pplware s
  • python获取上传/下载速度

    我想在我的计算机上监控上传和下载速度 一个名为 conky 的程序已经在 conky conf 中执行了以下操作 Connection quality alignr wireless link qual perc wlan0 downspe
  • 使用 \r 并打印一些文本后如何清除控制台中的一行?

    对于我当前的项目 有一些代码很慢并且我无法使其更快 为了获得一些关于已完成 必须完成多少的反馈 我创建了一个进度片段 您可以在下面看到 当你看到最后一行时 sys stdout write r100 80 n I use 80覆盖最终剩余的
  • Pandas:merge_asof() 对多行求和/不重复

    我正在处理两个数据集 每个数据集具有不同的关联日期 我想合并它们 但因为日期不完全匹配 我相信merge asof 是最好的方法 然而 有两件事发生merge asof 不理想的 数字重复 数字丢失 以下代码是一个示例 df a pd Da
  • 解释 Python 中的数字范围

    在 Pylons Web 应用程序中 我需要获取一个字符串 例如 关于如何做到这一点有什么建议吗 我是 Python 新手 我还没有找到任何可以帮助解决此类问题的东西 该列表将是 1 2 3 45 46 48 49 50 51 77 使用
  • 类型错误:预期单个张量时的张量列表 - 将 const 与 tf.random_normal 一起使用时

    我有以下 TensorFlow 代码 tf constant tf random normal time step batch size 1 1 我正进入 状态TypeError List of Tensors when single Te
  • 使用 Python 绘制 2D 核密度估计

    I would like to plot a 2D kernel density estimation I find the seaborn package very useful here However after searching
  • Python:如何将列表列表的元素转换为无向图?

    我有一个程序 可以检索 PubMed 出版物列表 并希望构建一个共同作者图 这意味着对于每篇文章 我想将每个作者 如果尚未存在 添加为顶点 并添加无向边 或增加每个合著者之间的权重 我设法编写了第一个程序 该程序检索每个出版物的作者列表 并

随机推荐

  • 使用 jQuery 创建新的 html5 视频对象

    如何使用 jQuery 创建视频元素 并将其属性 例如 control 添加到 true
  • Python 和 MySQL:有 MySQLdb 的替代品吗?

    是否有一个纯粹用 Python 编写的模块允许脚本与 MySQL 数据库通信 我已经尝试过 MySQLdb 但没有成功 它需要太多 GCC zlib 和 openssl 我无法使用这些工具 即使我这样做了 我也不想浪费时间让他们一起工作 我
  • 使用Camel的spring-rabbitmq组件时如何自动声明交换?

    我正在尝试从 Camel 3 x 迁移到 Camel 4 x 版本 因此我需要从rabbitmq替换组件spring rabbitmq With rabbitmq我正在使用的组件declare https camel apache org
  • 如何自动滚动到网格视图的末尾?

    当我将项目添加到网格视图的末尾时 我希望用户看到已添加的内容 这是我的意思的一个例子 用户通过按 图标添加项目 问题是在第 14 项之后没有任何反馈表明已添加任何项目 当最后一项添加到列表中时 如何自动滚动到最后一项 奖励点 当第 n 个项
  • 允许使用 docker-compose 在两个 docker 桥接网络之间进行通信

    我正在使用 docker compose 创建相当复杂的 docker 容器基础设施 这些容器在 4 个不同的网络中运行 类似于我模仿的生产环境 Docker Compose 为我创建了这四个网络 并且一切正常 因为容器不会尝试与不同网络内
  • 数据切换和数据目标在引导程序中不起作用

    我正在使用 bootstrap 开发导航栏 该导航栏上有两个按钮 一个用于登录 另一个用于注册 我希望当用户单击 登录 时 会弹出一个模式弹出窗口 并且当单击 注册 时 用户将被重定向到另一个页面 下面是我的代码 但在我看来它不起作用 我尝
  • 保护 REST API 和 Slim 框架的安全

    我对 REST API 相当陌生 我意识到已经发布了很多问题 然而 仔细阅读这些实际上让我对如何处理这个问题更加困惑 我使用创建了一个 REST API纤薄的框架 http www slimframework com 我只是用它来传输数据
  • Rails 5.x:如何在运行时添加路由而不覆盖原始路由表?

    假设我有一个控制器操作 应该会导致将新路由添加到路由表中 def make route vanity url params vanity url vanity redirect params vanity redirect return r
  • odbc 驱动程序不支持请求的属性

    当我们在最后一行运行程序时 odbc 驱动程序不支持请求的属性 错误出现 任何人都可以给我一个想法 Dim conn As New ADODB Connection Dim rsRec As ADODB Recordset Dim cmd
  • 如何在张量流中使用非常大(>2M)的词嵌入?

    我正在运行一个具有非常大的词嵌入 gt 2M 词 的模型 当我使用 tf embedding lookup 时 它需要一个很大的矩阵 当我运行时 我随后出现了 GPU 内存错误 如果我减小嵌入的大小 一切都会正常 有没有办法处理更大的嵌入
  • 如何在 Matlab 启动时设置一些自定义变量

    我想设置一些初始变量 例如format compact和当前目录 在 Matlab 每次启动时自动执行 我怎样才能做到这一点 创建一个startup m 脚本文件 其中包含用于设置所需状态的命令 接下来 从 MATLAB 内部运行命令 gt
  • 在 BigQuery python api 中设置聚类列

    我正在尝试在 BigQuery 中创建集群表 当我在 UI 中测试它时 它工作得很好 CREATE OR REPLACE TABLE project id xyz temp clustering PARTITION BY date CLUS
  • 使用具有应用程序权限的 Microsoft Graph API 时,租户没有 SPO 许可证

    当我们尝试访问 Microsoft Graph v1 0 API 中的 Sharepoint 终结点时 我们收到 400 错误 并显示消息 租户没有 SPO 许可证 我们已经注册了 Azure AD 应用程序并为相关端点分配了应用程序权限
  • 为什么函数返回 nil FireBase Swift [重复]

    这个问题在这里已经有答案了 为什么函数会返回 nil 我尝试添加 DispathQue 但我不明白它应该如何正确 请帮忙 func storagePutData uid String image UIImage compretition e
  • Spring 中的 Hibernate 事务管理器配置

    在我的项目中 我使用 Hibernate 进行编程事务划分 每次在我的服务方法中我都会写类似的东西 Session session HibernateUtil getSessionFactory openSession session be
  • 这样做的目的是什么(MyJobject as ILocalObject).GetObjectID

    在delphi Tokyo源代码中 我看到这两种不同的方式来检索 服务经理 var FLocationManager JLocationManager FLocationManager TJLocationManager Wrap TAnd
  • express-jwt 不尊重未受保护的路径

    有关express jwt模块的信息可以在这里找到 https github com auth0 express jwt https github com auth0 express jwt https www npmjs com pack
  • 让笑话在故事书中全球可用

    我在用 storybook react 6 in a create react app项目 我对所有商店 对象等进行了数千次测试和模拟 这些模拟利用jest fn 我想在我的故事书故事中重复使用这些模拟 但它说jest is not def
  • neo4j 使用选项卡加载 CSV

    我正在尝试使用以下命令加载 csv 并在 neo4j 2 1 0 中创建节点 使用定期提交 从 file c temp listings TXT 加载 CSV AS 行 FIELDTERMINATOR t CREATE p person i
  • mmap 与 fileinput 的优点

    我读到 mmap 比 fileinput 有优势 因为它会将页面读入内核页面缓存并在用户地址空间中共享该页面 而 fileinput 实际上将一个页面带入内核并将一行复制到用户地址空间 因此 文件输入会产生额外的空间开销 所以 我打算转向