2021年12月3日

摘要: GNU Libc 的内存分配器(allocator)—ptmalloc,起源于Doug Lea的malloc。由Wolfram Gloger改进得到可以支持多线程。 tcmalloc是Google开发的内存分配器,在Golang、Chrome中都有使用该分配器进行内存分配。有效的优化了ptmallo 阅读全文
posted @ 2021-12-03 16:45 星吊 阅读(3680) 评论(0) 推荐(0)
摘要: ue4内存管理 自定义内存管理 ue4的内存管理主要是通过FMalloc类型的GMalloc这一结构来完成特定的需求,这是一个虚基类,它定义了malloc,realloc,free等一系列常用的内存管理操作。其中,Malloc的两个参数分别是分配内存的大小和对应的对齐量,默认对齐量为0。 /** T 阅读全文
posted @ 2021-12-03 16:38 星吊 阅读(1189) 评论(0) 推荐(0)
摘要: 单帧分配器模型 用于分配一些临时的每帧生成的数据。分配的内存仅在当前帧适用,每帧开始时会将上一帧的缓冲数据清除,无需手动释放。 双帧分配器模型 它的基本特点和单帧分配器相近,区别在于第i+1帧适用第i帧分配的内存。它适用于处理非同步的一些数据,避免当前缓冲区被重写(同时读写) 堆栈分配器模型 堆栈分 阅读全文
posted @ 2021-12-03 16:33 星吊 阅读(122) 评论(0) 推荐(0)
摘要: 三种类型:1 sequential fit(连续的) 通过链表将空闲内存链接起来,称为freelist。 分配内存时,先从freelist中查找是否存在满足要求的内存块,如果不存在,再从未分配内存中获取;当我们找到合适的内存块后,分配合适的内存,并将多余的部分放回freelist。 包括first 阅读全文
posted @ 2021-12-03 16:22 星吊 阅读(247) 评论(0) 推荐(0)
摘要: 内存碎片 程序的内存往往不是紧凑连续排布的,而是存在着许多碎片。我们根据碎片产生的原因把碎片分为内部碎片和外部碎片两种类型: (1) 内部碎片:系统分配的内存大于实际所需的内存(由于对齐机制); (2) 外部碎片:不断分配回收不同大小的内存,由于内存分布散乱,较大内存无法分配; 内部碎片和外部碎片 阅读全文
posted @ 2021-12-03 16:08 星吊 阅读(155) 评论(0) 推荐(0)

导航