mmap vs sbrk,性能比较

2023-12-03

这些调用中哪个平均速度更快?我听说过mmap对于较小的分配来说速度更快,但我还没有听说过两者的比较。任何有关这些性能的信息都会很好。


您应该使用特定的实现来标记它(例如linux)因为答案肯定会因实现而异。现在我假设Linux,因为它是最流行的。

照这样说,brk理论上更容易优化,实际上它在我的机器上运行速度快了 10% 左右。分配一页,这些是我得到的时间:

  • brk:最少 2550 个周期,典型 2650 个周期
  • mmap:最少 2700 个周期,典型 2800 个周期

我记得听到过类似的话brk能够跳过锁定mmap信号量,这可以解释这种差异。

Note:在调整测试以在计时之前进行虚拟调用后,我更新了这些时间,以确保代码全部位于缓存中。

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

mmap vs sbrk,性能比较 的相关文章

  • 没有特殊字符的密码验证器

    我是 RegEx 的新手 已经进行了大量搜索 但没有找到任何具体内容 我正在编写一个验证密码字符串的正则表达式 可接受的字符串必须至少具有 4 种字符类型中的 3 种 数字 小写字母 大写字母 特殊字符 我对包含有一个想法 也就是说 如果这
  • 仅使用containerd(不使用Docker)修剪容器镜像

    如果我刚刚containerd安装在 Linux 系统上 即 Docker 是not安装 如何删除未使用的容器映像以节省磁盘空间 Docker 就是这么方便docker system prune https docs docker com
  • 如何在 Cassandra 中存储无符号整数?

    我通过 Datastax 驱动程序在 Cassandra 中存储一些数据 并且需要存储无符号 16 位和 32 位整数 对于无符号 16 位整数 我可以轻松地将它们存储为有符号 32 位整数 并根据需要进行转换 然而 对于无符号 64 位整
  • std::list 线程push_back、front、pop_front

    std list 线程安全吗 我假设不是这样 所以我添加了自己的同步机制 我认为我有正确的术语 但我仍然遇到问题 每个函数都由单独的线程调用 Thread1 不能等待 它必须尽可能快 std list
  • 传递给函数时多维数组的指针类型是什么? [复制]

    这个问题在这里已经有答案了 我在大学课堂上学习了 C 语言和指针 除了多维数组和指针之间的相似性之外 我认为我已经很好地掌握了这个概念 我认为由于所有数组 甚至多维 都存储在连续内存中 因此您可以安全地将其转换为int 假设给定的数组是in
  • 无限循环与无限递归。两者都是未定义的吗?

    无副作用的无限循环是未定义的行为 看here https coliru stacked crooked com view id 24e0a58778f67cd4举个例子参考参数 https en cppreference com w cpp
  • 如何使从 C# 调用的 C(P/invoke)代码“线程安全”

    我有一些简单的 C 代码 它使用单个全局变量 显然这不是线程安全的 所以当我使用 P invoke 从 C 中的多个线程调用它时 事情就搞砸了 如何为每个线程单独导入此函数 或使其线程安全 我尝试声明变量 declspec thread 但
  • 对类 static constexpr 结构的未定义引用,g++ 与 clang

    这是我的代码 a cp p struct int2 int x y struct Foo static constexpr int bar1 1 static constexpr int2 bar2 1 2 int foo1 return
  • WPF 数据绑定到复合类模式?

    我是第一次尝试 WPF 并且正在努力解决如何将控件绑定到使用其他对象的组合构建的类 例如 如果我有一个由两个单独的类组成的类 Comp 为了清楚起见 请注意省略的各种元素 class One int first int second cla
  • 人脸 API DetectAsync 错误

    我想创建一个简单的程序来使用 Microsoft Azure Face API 和 Visual Studio 2015 检测人脸 遵循 https social technet microsoft com wiki contents ar
  • WcfSvcHost 的跨域异常

    对于另一个跨域问题 我深表歉意 我一整天都在与这个问题作斗争 现在已经到了沸腾的地步 我有一个 Silverlight 应用程序项目 SLApp1 一个用于托管 Silverlight SLApp1 Web 的 Web 项目和 WCF 项目
  • 如何定义一个可结构化绑定的对象的概念?

    我想定义一个concept可以检测类型是否T can be 结构化绑定 or not template
  • C# 动态/expando 对象的深度/嵌套/递归合并

    我需要在 C 中 合并 2 个动态对象 我在 stackexchange 上找到的所有内容仅涵盖非递归合并 但我正在寻找能够进行递归或深度合并的东西 非常类似于jQuery 的 extend obj1 obj2 http api jquer
  • 如何实例化 ODataQueryOptions

    我有一个工作 简化 ODataController用下面的方法 public class MyTypeController ODataController HttpGet EnableQuery ODataRoute myTypes pub
  • C 函数 time() 如何处理秒的小数部分?

    The time 函数将返回自 1970 年以来的秒数 我想知道它如何对返回的秒数进行舍入 例如 对于100 4s 它会返回100还是101 有明确的定义吗 ISO C标准没有说太多 它只说time 回报 该实现对当前日历时间的最佳近似 结
  • 当文件流没有新数据时如何防止fgets阻塞

    我有一个popen 执行的函数tail f sometextfile 只要文件流中有数据显然我就可以通过fgets 现在 如果没有新数据来自尾部 fgets 挂起 我试过ferror and feof 无济于事 我怎样才能确定fgets 当
  • C++ 中的参考文献

    我偶尔会在 StackOverflow 上看到代码 询问一些涉及函数的重载歧义 例如 void foo int param 我的问题是 为什么会出现这种情况 或者更确切地说 你什么时候会有 对参考的参考 这与普通的旧参考有何不同 我从未在现
  • FileOutputStream.close() 中的设备 ioctl 不合适

    我有一些代码可以使用以下命令将一些首选项保存到文件中FileOutputStream 这是我已经写了一千遍的标准代码 FileOutputStream out new FileOutputStream file try BufferedOu
  • C# 使用“?” if else 语句设置值这叫什么

    嘿 我刚刚看到以下声明 return name null name NA 我只是想知道这在 NET 中叫什么 是吗 代表即然后执行此操作 这是一个俗称的 条件运算符 三元运算符 http en wikipedia org wiki Tern
  • 在OpenGL中,我可以在坐标(5, 5)处精确地绘制一个像素吗?

    我所说的 5 5 正是指第五行第五列 我发现使用屏幕坐标来绘制东西非常困难 OpenGL 中的所有坐标都是相对的 通常范围从 1 0 到 1 0 为什么阻止程序员使用屏幕坐标 窗口坐标如此严重 最简单的方法可能是通过以下方式设置投影以匹配渲

随机推荐

  • 如何使容器在 HTML/CSS 中居中?

    作为我任务的一部分 我开发了一个网站 由于我是 html css 新手 我无法从代码中找出一些问题 分配规范规定屏幕尺寸应在一定尺寸内 以便大多数浏览器都可以打开它 并且用户不应体验到任何滚动活动 所以我用div来划分整个页面以适应大小 但
  • 如何使用 Chrome 扩展程序在页面加载之前隐藏所有内容

    我尝试使用内容脚本 manifest content scripts matches js js content script js content script js ini function ini document body styl
  • SSL 性能影响[重复]

    这个问题在这里已经有答案了 可能的重复 SSL 会产生多少开销 最近 我与一位开发人员进行了交谈 他告诉我 在站点范围内实施 SSL 会使服务器负载增加 300 倍 这真的可信吗 我目前在所有页面上都使用 SSL 每天有数千名用户访问系统
  • 使 HTML 表格单元格中的文本与其他单元格重叠

    我希望单元格中的一些较长文本重叠在下一个单元格中 而不是换行 但又不会使第一列变大 如果我给细胞 white space nowrap position absolute 它将位于正确的位置 但其他文本将在其下方流动 感谢您的快速答复 您可
  • JS 四舍五入到小数点后两位 [重复]

    这个问题在这里已经有答案了 我试图将返回的数字限制为小数点后两位 但此代码对我不起作用 function myFunction var x document getElementById mySelect value document ge
  • 尝试使用 MATLAB 绘制 z = x + y 时出现错误的图形

    我正在尝试在 MATLAB 中绘制 3D 曲面 并且我利用了meshgrid 类似于 MATLAB 教程中所说的 http www mathworks com help matlab ref meshgrid html 我编写了一个非常简单
  • php 正则表达式用目录分隔符替换路径中的“任何”斜杠

    我正在尝试采取这样的路径 一些 路径 这里 一些 其他 路径 并将路径中的每个斜杠替换为 PHP 的 DIRECTORY SEPARATOR 内置常量 我有这个 subject asdf var preg replace DS subjec
  • Firebase 在 Swift 中检索自动 ID 下面的数据

    我在从 Firebase 检索数据时遇到麻烦 我想读取 auto ID 下 JSON 中的所有 contactName 数据 然后附加到 UIPickerView Here is my JSON tree used childByAutoI
  • 接口指定的属性的多态性

    为什么这不起作用 public class ClassOptions public interface Inode ClassOptions Options get public class MyClass Inode public Cla
  • VBScript - 复制过去 24 小时内修改的文件

    我正在尝试从上次修改日期在当前日期 24 小时内的目录中复制文件 我在文件路径中使用通配符 因为它每天都在变化 option explicit dim fileSystem folder file dim path path d x log
  • UIImage 的宝丽来滤镜

    我正在尝试在 iPhone 中实现一些图像滤镜 例如宝丽来 我搜索了如何过滤现有的 UIImage 将其转换为polaroid风格和遇到this堆栈溢出链接 以那里的答案为起点 我循环遍历图像的每个像素 获取 RGB 值 并将它们转换为 H
  • 如何使用 easymock 模拟类中的静态方法?

    假设我有一个像这样的课程 public class StaticDude public static Object getGroove some complex logic which returns an object 如何使用简单模拟来
  • 列表视图内存泄漏

    我有一个带有适配器的简单列表视图 我动态创建了 10 多个列表视图项目 然后我一次又一次地上下滚动 我可以看到可用内存不断减少 我需要在哪里免费以及什么 注意 有一个图像视图 但在我的测试中我没有使用任何图像 所以它是 View GONE
  • 删除边框样式会更改页面布局

    我对以下 HTML CSS 代码有疑问 CSS padding 0 margin 0 border none outline none container margin 10px auto 10px auto width 960px bac
  • 使用javax.swing.Timer在Java中制作倒计时器[重复]

    这个问题在这里已经有答案了 可能的重复 有条件的停止计时器仅在第一次有效 我对如何使用 swing 而不是 util 计时器制作计时器感到非常困惑 我正在制作一款游戏 用户必须在 30 秒的时间内回答问题 我有一个 PlayFrame 其中
  • 选择第一个和最后一个时间戳,其中 userID 是唯一的

    我正在尝试执行查询来获取每个唯一用户的第一个和最后一个时间戳 数据库看起来像这样 ID EventID Timestamp Person Number 1 2 2015 01 08 17 31 40 7 5 2 2 2015 01 08 1
  • 如何“强制”python 使用特定版本的模块?

    我是 python 新手 所以如果这个问题在其他地方用我没有想到的标签得到了回答 我深表歉意 我正在尝试将 numpy 从现在的 1 6 版本更新到 1 8 我已经在我的 python 站点包中安装了 numpy 当我调用 numpy 时
  • 在 Node-FFI 中使用 SendInput

    我想使用 Nodejs 中 Windows Api 的 SendInput 函数 使用 FFI 包 我对 C 的了解有限 所以我无法真正弄清楚我遇到了什么问题 我基本上是想虚拟地按下键盘上的一个键 这就是我的代码 var ffi requi
  • 如何从椭圆图像中找到上下弧的长度

    在这里 我尝试使用图像矢量 图像轮廓 找到上弧和下弧 但它无法给出提取结果 建议任何其他方法从图像中找到上弧和下弧及其长度 这是我的代码 Mat image cv imread thinning 20d jpg int i 0 j 0 k
  • mmap vs sbrk,性能比较

    这些调用中哪个平均速度更快 我听说过mmap对于较小的分配来说速度更快 但我还没有听说过两者的比较 任何有关这些性能的信息都会很好 您应该使用特定的实现来标记它 例如linux 因为答案肯定会因实现而异 现在我假设Linux 因为它是最流行