加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

多个小型mallocs与一个大型malloc

发布时间:2020-12-16 10:31:51 所属栏目:百科 来源:网络整理
导读:任务是将二进制文件解析到内存中.但是,我不知道分配所需的内存量. 哪种方法更可取:在解析例程中进行多个小malloc,或者首先遍历文件以确定所需的内存量,然后再次解析? 任何提示都表示赞赏. 解决方法 几乎在所有情况下,一个大的分配比许多小分配更好.这可以
任务是将二进制文件解析到内存中.但是,我不知道分配所需的内存量.

哪种方法更可取:在解析例程中进行多个小malloc,或者首先遍历文件以确定所需的内存量,然后再次解析?

任何提示都表示赞赏.

解决方法

几乎在所有情况下,一个大的分配比许多小分配更好.这可以防止碎片,减少系统调用.它通常会通过更好的位置获得更好的性能.

一种常见的技术是先分配一个小段,然后按固定因子(通常为1.5)重新分配一个小段.收集完所有元素后,如果过度分配被认为是大的,则可以将内存固定为最大大小.

在任何情况下:首先实施最简单的一个.如果您遇到性能问题:基准测试.然后优化.事实证明,分配甚至不是你的瓶颈.

编辑:作为R ..提到你可以通过推理上限内存及其与文件长度的关系来分配多少钱.大多数好的二进制格式还包含标题段中的长度和大小信息.如果您可以通过一些算术和/或文件搜索来确定数据结构所需的确切大小,那么您就是胜利的一方.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读