在某些情况下,需要反复申请和释放大量固定大小的小块内存,如果利用malloc和free的话不但效率低下,而且会使系统产生大量的内存碎片。此时,大都选择使用内存池(Memory Pool)来提高效率。
内存池的原理就是事先申请好一大块内存,然后再在这块内存上分配和释放小块内存。由于允许申请的内存块大小固定,因此不会产生,也不会有分割合并内存块的开销。
下面是我正在编写的GUI系统中所使用的内存池。
首先来看内存池的结构定义:
创建内存池:
在某些情况下,需要反复申请和释放大量固定大小的小块内存,如果利用malloc和free的话不但效率低下,而且会使系统产生大量的内存碎片。此时,大都选择使用内存池(Memory Pool)来提高效率。
内存池的原理就是事先申请好一大块内存,然后再在这块内存上分配和释放小块内存。由于允许申请的内存块大小固定,因此不会产生,也不会有分割合并内存块的开销。
下面是我正在编写的GUI系统中所使用的内存池。
首先来看内存池的结构定义:
创建内存池: