易语言内存池源码
易语言效率不高多线程中,内存的申请和释放会频繁,所以这里需要一个内存池
思路大致如下:
申请一块大内存,分成N个单元。当用户需要的时候,我们会分配一些单位给用户,并标记为已使用
用户使用完毕后,将本机标记为未使用,以供下次使用
实施过程:
单元列表采用栈的方式。为了保证多线程中的安全,我们使用原子锁InterlockedSList系列API
1.首先申请一块内存,记录内存池的相关信息
单元大小 (4)、初始化大小 (4)、单元列表 (8)、请求的内存块列表 (8)
总长度为24,单元列表和内存块列表分别使用原子栈
页:
[1]