thread local性能 c++_高性能内存分配库 mimalloc 简介

一、简介

mimalloc 是微软研究院在 2019 年发表并开源的一个新的内存分配库:

  • 代码量少,核心代码行数 <3500 行

    • tcmalloc ~20k LOC

    • jemalloc ~25k LOC

  • 性能大大优于市面上其他 memory allocator

    • 比 tcmalloc 快 7%

    • 比 jemalloc 快 14%

  • 三个局部存储的分片的空闲列表

    • 增加数据访问局部性 (locality)

    • 减少线程访问竞争

    • 支持性能优化到极致的分配和释放的 fast path

    • 引入一个时间节奏(temporal cadence),使分配器适时离开 fast path 来处理一些维护性的任务

二、内存分配和释放机制

mimalloc 的内存分配释放机制要点:

  • 极致的空闲列表分片

  • 分配和释放的主路径经过深度优化,其他的情况都被延迟到 generic 方法中进行。

  • 没有使用锁,所有的多线程数据竞争都使用原子操作来解决。最坏情况下有上界,元数据约占 0.2%,实际分配空间浪费不超过 16.7%。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值