一个内存分配器的设计和实现

来源 :东北大学 | 被引量 : 0次 | 上传用户:xtzy
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
大部分C/C++开发工具自带的动态内存分配器或动态内存管理函数不仅运行速度慢,而且页面性能比较差,不适合用于内存频繁分配和释放的场合,而一般专用的内存分配器虽然性能好,但是通用性差,而且技术保密。本论文论述了设计和开发一个可移植性非常好的堆内存分配器,取名HLP,可以运行在Windows, Linux, Unix,甚至某些嵌入式系统上。HLP的开发过程没有使用单一的理论,而是尝试了把堆层次和池式内存管理相结合。出于可扩充性和易于理解的需要,设计并实现了一个全新的架构,该架构具有良好的可维护性。结合实际情况,HLP的实现中巧妙地改进了三个基本算法,位图、边界标记和分割列表。改进后的位图和边界标记算法消除了额外空间开销。分割列表算法改进后变成了桶,大幅度降低了内部碎片。HLP提供了统一符合习惯的用户接口,这样,程序员无需了解HLP复杂的内部细节就可以很方便地使用它了。测试发现,HLP不仅运行速度上有了质的飞越,而且页面性能也有很大改善,一般而言,HLPHLP比malloc/free快3~130倍,页面错误比malloc/free低7%~37%。
其他文献
随着计算机的普及和计算机网络的发展,越来越多的政府办公部门实现了政务的电子化,网络化。而在众多的电子政务软件中,由于数据来源和数据载体形式的多样性,如何将各种形式的
随着可重构计算技术的发展,嵌入式系统已经由传统的基于微控制器的体系结构向软硬件混合系统结构发展。在一个复杂嵌入式应用系统中,为了提高系统的整体处理能力,更好地发挥
脑机接口技术可以通过直接读取大脑运动皮层神经信号并解码控制外周的辅助设备、来帮助残障人士实现运动功能的重建,其中最重要的技术就是神经解码。手臂是人体参与交互的最
随着汽车的快速发展,智能驾驶、自动行驶越来越成为人们的迫切需要,基于计算机视觉的自动行驶方案的研究在世界范围内得到广泛关注。近年来,许多高校、研究机构和企业都在智
铁路是国民经济的大动脉,铁路的各种设备和业务的信息量非常庞大,建立专门的信息系统对其进行管理是铁路信息化的需求,是铁路现代化的标志。铁路超限超重货物运输主要满足国
随着技术的进步,互联网已经深刻的影响了人们的日常生活。无论图片、文字还是影像,如今在网络上都已经变得唾手可得。人们在享用互联网带来诸多便利的同时,也受到网络上流传的不
我们提出了一种全新的实时单目SLAM(并行的跟踪与地图生成)系统,可以鲁棒的处理动态场景。和以往的方法不同,我们的系统允许部分场景可以动态的变化,或者整个场景逐渐的变化
在硬实时嵌入式系统中,任务间的抢占不仅导致操作系统上下文切换的时间开销,而且还会造成存储器、网络、外界环境等资源的浪费和能源的消耗。因此如何在保证系统实时性的同时,对
纹理是图像的重要特征,它为图像理解和识别提供了大量的信息。纹理图像分割是与纹理相关研究中的基础问题,它不仅在计算机图像和视觉研究中具有重要的意义,还在实践中有广泛的应
原子团簇是由几个至数千个原子间的相互作用而形成的稳定聚集体,其物理性质和化学性质往往与它所拥有的原子数目的多少有关。原子团簇最稳态结构的预测问题是计算机、物理、化学、生命科学等研究领域的一个世纪难题,它是一个NP-Hard问题。原子团簇在纳米材料、催化剂、微电子、生物学等方面都有非常重要的应用。目前预测黄金原子团簇最稳态结构的一般方法是合理简化原子团簇的内部结构,根据原子间的相互作用势建立其物理模