摘 要:本文对C++动态内存管理算法进行了描述,对其中可能存在的问题进行了探讨并提出了解决方法。通过对原来内存管理链表的结构改进,提出了新的双向链式哈希结构并应用于插入式调试内存管理器来跟踪所有动态分配的内存。此内存管理器的特点在于搜索速度快,内存管理全面,接口是无缝的。该内存管理器算法在我们一个最新研发的一款游戏引擎中进行了应用并通过了测试,获得了良好的效果。
关键词:内存管理 双向哈希链表 游戏引擎
内存管理器提供了一下功能及特点:
1 无缝的接口, 即代码可以嵌入任何的工程中。
2 跟踪所有的内存分配及释放。
3 统计并报告内存分配情况与内存泄漏和越界操
作。
4 用户自定义选项, 以便定制自己的内存管理器。
由于其改进了释放和搜索算法, 使得内存管理器在游戏引擎编写中的效率得到了大幅的提高, 并且其无缝的接口以及个性化的定制选项, 为代码的重用创造了良好的条件。我们在游戏引擎的开发过程中, 由于使用了内存管理, 也使得整个工程在推进的过程中避免了不少内存泄漏的问题。并且这个内存管理器可用于任何软件工程中, 可作为是程序员的必备工具之一。
参考文献:
[1]Microsoft Developer Network Library, http://msdn.microsoft.com/library/devprods/vs6/
visualc/vccore/core_memory_management_with_mfc.3a_.overview.htm
[2]沈被娜,刘祖照.计算机软件基础(第三版)[M].北京.清华大学出版社.2000.89- 90
[3]杨雷,吴珏,陈汶滨.实时系统中动静结合的内存管理实现[J].微计算机信息,2005,10- 2:15- 16
[4]McConnell,Steve,Code Complete [M],Microsoft Press.1993.
[5]MicrosoftDeveloperNetworkLibrary,
http://msdn.microsoft.com/library/devprods/vs6/visualc/
vclang/_pluslang_initializing_static_objects.htm
[6]CHANG J M,GEHRINGGER E.A high - performance memoryallocator for obiected - oriented system [J].IEEE Transactions on Computers,1996,45(3):357- 366.
作者简介:
周政春( 1983.2~) , 男, 浙江余姚人, 硕士研究生。专业: 通信与信息系统。主要研究方向: 互动数字媒体, 多媒体信号处理,E- mail: zhouzhengchun@163.com。
万旺根( 1961.6~) , 男, 江西南昌人, 教授、博士生导师, 博士学位。专业: 信号与信息处理。主要研究领域: 互动数字媒体, 多媒体信号处理。
Author br ief introduction:Zhou,Zhengchun,was born in Shanghai,China,on Feb 8,1983.He received the B.S.from Shanghai University,China,in 2004.His research interests include interactive digital media,multi- media signal processing.
通讯地址:
( 200072 上海市闸北区延长路149 号上海大学行健楼1202 室) 周政春

