论文部分内容阅读
为上层的应用程序安全而高效地提供内存资源是内存管理所完成的主要作用,同时还进行安全有效地回收所释放的内存。内存管理是影响着系统处理性能和内存安全的重要因素之一。因此如何提高性能成为大数量高性能需求计算处理的主要考虑因素。而处理速度很大程度上跟内存以及缓冲区机制有关。在操作系统架构相对形成的现在,如何在应用层提高内存的效率成为一大研究课题,而内存池的引入成为重要的解决方案之一。
本文首先对内存管理的概念以及各系统内存管理机制进行了分析,重点关注Linux系统内存管理的特性。接着介绍内存池基本原理,应用层内存池引入的必要性以及经典内存池实例。然后根据内存池的基本框架为出发点,根据不同的数据结构对应用层内存池方案进行了设计可行性分析,并据此提出了一种面向小数据处理的内存池方案。因此本文在对各种系统内存管理技术进行分析比较和总结,设计和实现了两种结构的应用层内存池:即分别使用双向链表和堆结构的应用层内存池方案,以及另外一种针对小数据高效处理的内存池。对这几种方案的性能效率跟系统中内存的分配释放效率进行比较,并进行性能测试,同时也对这两种不同结构的内存池之间进行比较分析。结论是内存池的引入使性能提升了若干倍,效率得到极大地提升。在本文的实验环境和参数下,两种结构的内存池均速度提升了约数百倍,且分配和释放操作越频繁,提升效率越高。对于针对小数据处理的内存池,在数据在1~16比特之间时,效率提升明显,能达到50%,且效率与数据分组大小乘反比,并提升了稳定性,减少了内存碎片。因此,通过以上的内存池方案设计,减少了系统内存管理机制中一些非必要的额外操作,进而使应用程序的综合性能得到提升。