Erlang 内存管理: 内存分配器简介

这里介绍的是 Erlang 自己实现的内存分配器, 并非操作系统的内存分配器, Erlang 需要调用操作系统的分配器获取一大块内存, 并用于 Erlang 系统内部的内存分配, 来满足比如创建进程, 原子, 二进制数据, 驱动等数据结构的内存需求.

分配器描述
temp_alloc临时分配器
eheap_alloc进程堆
binary_alloc二进制数据
ets_allocETS 表数据
driver_alloc驱动(Driver)
sl_alloc短生命期(Short-live)内存块分配
ll_alloc长生命期内存块分配, 比如Erlang 代码
fix_alloc用于某某些固定大小数据类型的快速分配
std_alloc用于多数情况下, 非上述任何其他分配方式的内存块分配
sys_alloc用在指定操作系统上的默认malloc实现.
mseg_alloc内存段分配器
. mseg_alloc 被其他分配器使用, 用于分配内存段, 并且仅能在支持 mmap 系统调用的操作系统. 被释放的内存, 在最终被销毁之前, 还会在段缓存中保留一段时间, 当分配新的段时, 如果可能, 会使用缓存的内存段而不是创建新的. 这是为了减少系统调用的次数.

下图是使用 :observer.start 查看到的.

图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值