最小化 malloc() 调用量可以提高性能吗?

2024-03-30

考虑两个应用程序:一个(num.1)调用 malloc() 多次,另一个(num.2)调用 malloc() 几次。 两个应用程序都分配same内存量(假设 100MB)。
对于哪个应用程序,下一个 malloc() 调用会更快,#1 还是 #2?
换句话说: malloc() 是否有内存中已分配位置的索引?


您问了 2 个问题:

  • 对于哪个应用程序,下一个 malloc() 调用会更快,#1 还是#2?
  • 换句话说: malloc() 是否有内存中已分配位置的索引?

您暗示它们是同一个问题,但事实并非如此。后一个问题的答案是肯定的。

至于哪个更快,就不好说了。它取决于分配器算法、机器状态、当前进程中的碎片等等。

不过,您的想法是合理的:您应该考虑 malloc 的使用将如何影响性能。 我曾经编写过一个应用程序,它使用了大量的小内存块,每个内存块都是用 malloc() 分配的。它工作正常但速度很慢。我只用一次替换了对 malloc 的多次调用,然后在我的应用程序中分割了这一大块。速度要快得多。

我不推荐这种方法;这只是说明 malloc 的使用会对性能产生重大影响。

我的建议是测量它.

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

最小化 malloc() 调用量可以提高性能吗? 的相关文章

随机推荐

  • Qt 和 CMake 因重复符号而失败

    我的 c qt 项目中有 3 个文件 并且我正在使用 CMake 我正在尝试编译它这里有一些代码 CMakeLists 包含 cmake minimum required VERSION 3 8 project untitled set C
  • Apache Commons Lang 2 与 3

    在我的应用程序中 我使用 apache commons Lang v 3 所需的图书馆给我一个 java lang ClassNotFoundException org apache commons lang StringUtils com
  • 在 Rails 中添加与 simple_form、nested_form 和 Twitter Bootstrap 内联的控件

    我正在使用 simple form nested form 和 Twitter Bootstrap 并尝试将nested form 中的 删除链接 与对象放在同一行 现在看起来像这样 http grab by eKDS http grab
  • 安装适用于 Python 的 cx_Oracle

    在 Debian 5 上 我一直在尝试为 python 安装 cx oracle 模块 但没有成功 首先 我安装了 oracle xe client 及其依赖项 按照以下链接中的教程here http le gall net pierric
  • MSXML 哪个版本开始支持解析 XML 1.1?

    如果我使用 MSXML6 dll 解析 XML 1 1 我将收到此错误 0xC00CE57F MSG E INVALID VERSION 版本号无效 XML 1 1 最初发布于 2004 年 2 月 4 日 令我惊讶的是 MSXML6 dl
  • TDD 新手:是否有带有测试的示例应用程序来展示如何进行 TDD?

    我真的很想进入 TDD 开发 但我不知道从哪里开始 我认为 查看代码并了解他们如何编写测试并使类可测试 这样我会更容易消化并开始使用自己 有谁知道任何示例或小型开源C 包含单元测试的应用程序 对于沙卡尔佩什来说 我会推荐 ObjectMen
  • with() 语句从 opencv 中的 VideoCapture 读取?

    我喜欢使用 with 语句来访问文件和数据库连接 因为如果出现错误或文件关闭 它会自动为我断开连接 f open file txt r for i in f print i f close versus with open file txt
  • 在 bash 中读取以空格分隔的文件,不会导致空字段崩溃

    我正在尝试在 bash 中读取多行制表符分隔的文件 格式要求为空字段 不幸的是 外壳正在将彼此相邻的字段分隔符折叠在一起 如下所示 IFS t read one two three lt lt lt one t tthree printf
  • Fletchers16 校验和适合小数据吗?

    使用直接实施维基百科弗莱彻的校验和 https en wikipedia org wiki Fletcher s checksum对于 BCA 和 CAB 以及 BAC 和 ACB 等数据 我们得到相同的校验和 这是预期的吗 Fletche
  • 如何覆盖默认的 maven-install-plugin 行为?

    我需要自定义工件安装 并且无法弄清楚如何覆盖默认工件 来自默认的 Maven 生命周期 所以我的问题是 如何在我的 pom xml 中配置 Maven 安装插件 以便它不执行默认安装并仅执行我的自定义安装文件目标 我试过没有 id 和默认安
  • 为什么不同的 case 条件体不在不同的范围内?

    为什么不同的案件主体不会自动属于自己的范围 例如 如果我要这样做 switch condition case CONDITION ONE int account 27373 case CONDITION TWO account var no
  • 资源包 Spring

    如何在 Spring MVC 中的一个类中访问来自资源包的消息 该类扩展自AbstractController 我努力了getMessageSourceAccessor getMessage a message 但它会抛出这个异常 org
  • 如何从数据库值生成选择列表?

    我想知道在包含数据库中的值而不重复任何代码的表单上拥有选择列表的最佳方法是什么 我认为有意义的是将这些数据加载到控制器中并将其传递给视图模型 这样我就可以使用SelectListFor lt gt 或其他任何内容以生成列表 然而 这意味着我
  • 使用 ALS 训练时 Spark 给出 StackOverflowError

    当尝试在 Spark 的 MLLib 中使用 ALS 训练机器学习模型时 我不断收到 StackoverflowError 这是堆栈跟踪的一个小样本 Traceback most recent call last File Users us
  • 我们可以强制使用 Dart 垃圾收集器吗?

    我正在尝试模拟内存泄漏Streams 出于教育目的 但如果 GC 尚未运行 我无法确定内存是否真的泄漏 我可以在纯 Dart 测试中强制执行 GC 扫描吗 您可以通过 Dart DevTools Web GUI 来完成此操作 https d
  • 如何在android中创建液体布局

    我正在大学进行一个项目 我想知道如何在android中使用液体布局 以便不同的屏幕尺寸必须根据其分辨率看到应用程序 简而言之 我想创建一个应用程序 其布局在所有类型的屏幕上都是完美的 我知道如何在 PC 网站中用简单的 html css 创
  • Data.model.updateItem 不是函数 TypeError:Data.model.updateItem 不是函数

    使用 mongo 的 keystone js 中出现错误 Vehicle model updateItem 不是函数 TypeError Vehicle model updateItem 不是函数 目标是使用对象更新模型 就像我使用 ff
  • 让 TFS 将每个项目输出到其自己的目录的最佳方法是什么?

    我正在将大型代码库放入 Team Foundation Server 中 我希望构建过程能够创建我们项目的 准备部署 版本 我们执行此操作的正常方法是将每个项目的输出放在其自己的文件夹中 因此 例如 我们最终会得到类似的东西 C proje
  • R:创建具有节点属性的“statnet”网络

    我正在按照这里的示例使用 statnet 库http personal psu edu drh20 papers v24i09 pdf http personal psu edu drh20 papers v24i09 pdf 第一个示例展
  • 最小化 malloc() 调用量可以提高性能吗?

    考虑两个应用程序 一个 num 1 调用 malloc 多次 另一个 num 2 调用 malloc 几次 两个应用程序都分配same内存量 假设 100MB 对于哪个应用程序 下一个 malloc 调用会更快 1 还是 2 换句话说 ma