如何禁用 mmap() 的写入时复制和按需填充零

2024-01-04

我正在使用 mmap() 实现 cp(文件复制)命令。 为此,我在 MAP_PRIVATE (因为我只想读取)模式下映射源文件,在 MAP_SHARED 模式下映射目标文件(因为我必须写回目标文件的更改内容)。

在执行此操作时,我观察到由于两个原因而发生的许多小页面错误导致性能损失。 1) 为源文件调用 mmap(MAP_PRIVATE) 时按需填零。 2) 在为目标文件调用 mmap(MAP_SHARED) 时进行写入复制。

有什么方法可以禁用按需清零和写入时复制吗?

谢谢, 哈里什


mmap(2) 有 MMAP_POPULATE 标志:

http://linux.die.net/man/2/mmap http://linux.die.net/man/2/mmap

MAP_POPULATE(自 Linux 2.5.46 起) 填充映射的(故障前)页表。对于文件映射,这会导致文件预读。稍后对映射的访问不会被页面错误阻止。自 Linux 2.6.23 起,MAP_POPULATE 仅支持私有映射。

它应该预先对映射区域中的所有页面进行故障排除。它应该适用于问题(1),但可能不适用于问题(2)(共享)。

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

如何禁用 mmap() 的写入时复制和按需填充零 的相关文章

随机推荐

  • 是什么导致Spring在使用AnnotationConfigApplicationContext时无法加载配置类?

    我最近遇到了这个问题 在搜索 stackoverflow 网站后 找不到可行的解决方案 我收到的错误是 Spring 在加载配置类时遇到问题 我使用注释和 Spring 类来配置 而不是 XML 文件 以练习使用注释而不是 XML 文件配置
  • 是否可以强制使用 DataType 作为 DataType.Currency 的 MVC3 字段的货币

    我正在编写一个 MVC3 应用程序 它从数据库中读取一堆货币数据 我遇到的问题是这些金额都是不同的货币 如果我像这样设置字段的类型 DataType DataType Currency public Amount get set 我得到小数
  • 添加使用向上和向下箭头键选择表格行的功能

    我需要专家的帮助来解决我的以下问题 因为它超出并远远超出了我对 JavaScript 编程的知识水平 鉴于下面现有的 JavaScript 编码 我如何搭载并添加到现有编码中 以便为用户添加功能 以便在滚动时使用向上和向下箭头键滚动表格 顺
  • 我无法使用 libusb for Ruby 模拟嗅探 urb 中断

    嗅探 URB INTERRUPtions 我嗅探了一些应用程序 SoundLab 和设备 带 USB 的声波计 之间的通信 我找到了一个负责返回当前状态的数据包 USB URB Source host Destination 1 1 2 U
  • 包主要版本更改是否意味着子包主要版本更改?

    假设我有一个核心 CMS 已从v4 8 7 to v5 0 0 我还有一个事件模块包 有自己的版本号1 2 4它将这个核心 CMS 包导入到它的composer json file company name cms 4 3 我将这个包上的c
  • Tesseract 混淆两个数字

    我正在编写一个应用程序来扫描图像中的数字 这些数字使用 OCR B 字体 并且还可能包含 and gt 人物 这是我的源图像 即使将字符集限制为上述字符 使用 Tesseract 的扫描效果也不是很好 由于我没有找到 Tesseract 的
  • Visual Studio 不会调试到引用的 DLL(来自同一解决方案)

    我有一个 Visual studio 2008 解决方案 有 2 个项目 一个 DLL A 一个 Web 应用程序 B B 有一个对 A 的项目引用 并且 A dll 和 A pdb 正在被复制到 B 的 bin 目录中 一切都设置为在调试
  • 文件夹外的文件夹路径

    我的主文件夹中有一个包含所有 css 的文件夹 名为 main 在 main 中 我有另一个名为 math 的文件夹 我想在 math 文件夹中使用我的CSS 但是当我输入 在 math 文件夹的index html 上它可以工作 我认为这
  • 无法在 Codeigniter 中加载请求的类 Session

    我的图书馆在autoload php is autoload libraries array database pagination session cart form validation 我收到此错误 An Error Was Enco
  • Kotlin 注解 IntDef

    我有这个代码示例 class MeasureTextView TextView constructor context Context super context constructor context Context attrs Attr
  • 如何向框架添加鼠标监听器

    我想向 mt JFrame 框架添加一个 mouselistener 但是当我执行 frame addMouseListener this 时 我收到一个错误 指出我无法在静态方法中使用它 我正在制作一个应用程序 检测鼠标的单击 然后以 i
  • 如何使用 scikit 的预处理/标准化以及交叉验证?

    作为没有任何预处理的交叉验证的示例 我可以这样做 tuned params penalty l2 l1 from sklearn linear model import SGDClassifier SGD SGDClassifier fro
  • 如果选中则获取复选框值

    我正在使用 HTML 和 JQuery mobile 构建一个表单 以便该表单可以在移动设备上使用 我有通过电子邮件导出到 CSV 的表单 但是 如果未选中复选框 则不会写入 CSV 文件 我可以使用 jQuery 中的函数使用标签中的值从
  • MySQL GROUP_CONCAT 多个字段

    我可能正处于无脑时刻 我想使用 GROUP CONCAT 从数据库中的两个字段返回一系列数字 到目前为止我已经使用以下方法完成了此操作 SELECT t id CONCAT GROUP CONCAT DISTINCT s id IFNULL
  • 如何在 C# 中序列化和反序列化以字节数组作为成员的类

    我正在尝试以字节流的形式在两个进程之间发送数据 这对于几乎所有类都工作得很好 但我遇到的一个问题是 如果对象的类内部有一个字节数组并给出 则反序列化会失败我收到一个错误 指出无法加载发生序列化的程序集 我无法将程序集包含在此处 因为发送方和
  • matplotlib:3D 图中的网格

    In matplotlib 如何在 3D 散点图中显示网格 在二维图中我只是这样做 plt grid True 它就像一个魅力 现在 对于 3D 绘图 相同的调用会返回警告 File usr lib pymodules python2 7
  • Haystack - 为什么 RealtimeSearchIndex 有时不更新我保存的对象

    我正在将 Haystack 和 Whoosh 与 Django 一起使用 在 search index py 中我有这个 class PageIndex RealTimeSearchIndex text CharField document
  • 在 Collectionview 中如何根据选择设置颜色?

    我的要求是首先设置默认颜色indexPath我想根据选择改变颜色 我的要求是当集合视图在第一个索引加载时背景颜色应该是红色 未选择的颜色是蓝色 如何管理这个 这是我的代码 import UIKit class MyCollectionVie
  • pandas,将多列的多个函数应用于groupby对象

    我想将多列的多个函数应用于 groupby 对象 这会产生一个新的pandas DataFrame 我知道如何分步骤完成 by user lasts groupby user elapsed days by user apply lambd
  • 如何禁用 mmap() 的写入时复制和按需填充零

    我正在使用 mmap 实现 cp 文件复制 命令 为此 我在 MAP PRIVATE 因为我只想读取 模式下映射源文件 在 MAP SHARED 模式下映射目标文件 因为我必须写回目标文件的更改内容 在执行此操作时 我观察到由于两个原因而发