【摘 要】
:
在软件开发中,动态内存管理是一项很重要的内容。相比不需要开发人员干预的静态内存管理方式,动态内存需要开发人员自己管理内存的申请、释放等操作。虽然动态内存管理机制非
论文部分内容阅读
在软件开发中,动态内存管理是一项很重要的内容。相比不需要开发人员干预的静态内存管理方式,动态内存需要开发人员自己管理内存的申请、释放等操作。虽然动态内存管理机制非常强大,但是同时由于动态内存管理复杂性,由此也带来了很多问题。在这些问题中,内存碎片和内存泄漏成为其中最显著的两个问题。内存碎片是由于频繁的申请和释放,导致一些小的内存块无法被程序使用,同时也无法被系统回收导致。内存碎片积累首先会浪费系统内存,同时它也增加了动态内存管理的负担,增加程序申请内存块的时间。内存泄漏是指在开发人员申请使用了内存块之后,由于各种原因没有释放内存块,同时操作系统也无法回收该内存块,造成程序使用内存持续增加,最终耗尽系统内存。为了解决动态内存管理中的碎片和内存泄漏问题,人们提出了很多解决方案。为了解决内存碎片,针对不同的软件应用场景,设计了各式各样的内存池,整块向操作系统申请,然后自己管理申请和释放,最终将申请的整块内存返还给操作系统。为了解决内存泄漏的问题,各种内存泄漏检测工具被开发了出来,其中最有名的当属Linux下的vlagrind。内存泄漏还可以使用带有垃圾回收机制的语言等方法缓解。针对内存碎片问题,本文设计了一种内存池,该内存池主要针对一些软件中使用固定大小的内存块使用较多的情况,该种方法具有申请和释放速度快,内存浪费较少,同时避免了一些内存池设计中使用内存量只能增加,而无法将内存返还给操作系统的问题。针对内存泄漏的问题,本文设计了一种内存泄漏检测方法,记录用户的动态内存操作,通过分析其日志的方式寻找内存泄漏。该方法和其他内存泄漏检测方法相比,具有实时性、轻量及使用灵活的特点。在提出方法的同时,也针对性的设计了仿真试验,验证了设计的内存池和内存泄漏检测方法的有效性。
其他文献
该论文研究了安全测评的相关技术和发展方向,分析了网络安全评估软件常用的体系结构,最后设计了一个基于web的安全测评系统。该系统采用改进的三层B/S体系结构。客户端使用浏览
随着Internet网络安全性要求的不断提高,公钥基础设施(Public Key Infrastructure,PKI)得到越来越广泛的应用,但其部署难度大和交互性差等缺点却阻碍了它的进一步推广。为了
船舶报警系统是船舶自动化的重要组成部分,由各种报警信号检测部分,控制部分,报警信号的发出部分组成。本论文中主要研究报警信号的发出和控制部分,其功能主要是报警控制器根据检
随着信息检索技术的发展,关键字搜索技术一直都受到学术界的高度关注,它在数据库、信息检索以及数据挖掘等领域一直是研究的热点。随着网络上数据的爆发式增长,以及大量图数
IPv6是下一代网络的基础协议。随着IPv4地址的枯竭,人们开始准备部署IPv6。网络地址翻译-协议翻译(NAT-PT),是现阶段实现IPv6节点和IPv4节点相互通信的重要方法之一。而应用层网
嵌入式文件系统是嵌入式实时操作系统的一个重要组成部分,随着嵌入式系统硬件设备的的可获得性的提高和价格的不断降低以及嵌入式系统应用范围的不断扩大,嵌入式文件系统的重要
作为一门新兴的技术,无线传感器网络(WSN, Wireless Sensor Network)的应用前景无限广阔。只需要将大量体型微小的传感器节点部署到目标区域,就可以使用这些节点采集区域内的
XML已经成为Intemet上数据交换的标准。XML不仅可以作为一个完整的文件传输,而且还有可以以一种串行数据流的方式传输。近年来,针对XML数据流的处理在研究领域引起了广泛的兴趣
为实现对洗车店会员车辆的自动识别,首先需要对进店车辆的车牌图像进行定位。但洗车店内雾气大、光照条件差且近门处亮度变化剧烈、车牌图像倾角大、像素数低,直接用现有的车
随着网络技术的不断发展,基于互联网的现代远程教育技术也在不断发展,并随之出现了一大批可用于网络教育的高新技术。近阶段被加紧研究并积极推广的VOIP技术就是一个典型。VO