论文部分内容阅读
在现代计算机软件开发中,动态内存为程序设计提供了极大的灵活性。过去的几十年中,前人不断研究、改进动态内存的管理方法,产生了众多的动态内存管理算法。同样在这几十年中,关于数据库技术的研究也得到了长足的发展,开发了众多商业的,以及开源的数据库产品。数据库被应用在现代社会的方方面面,构筑了互联网时代的基石。在近十年里,基于数据仓库,人类社会又迈入了大数据时代。但是到目前为止,还没有人把数据库技术与动态内存管理技术结合起来,利用数据库进行动态内存的管理。本文的研究内容是结合内存数据库技术来进行动态内存的管理,对内存数据库技术和动态内存管理的研究都是创新。本文的研究使用了内存数据库SQLite来分配、回收动态内存,动态内存始终存在于SQLite数据库中。本文首先对使用SQLite进行动态内存管理的方案进行了整体设计;然后分析了SQLite的存储类型,以及SQLite的存储类型与程序设计中的内存数据类型之间的对应关系;接着研究了如何利用SQLite的特点来设计本研究方案的数据库模型,完成数据库的设计;最后在整体设计和数据库设计的基础上研究了程序模型设计,程序模型主要完成对SQLite数据库操作的封装。本文的研究不在于提高动态内存管理的性能,而在于设计一种结合数据库技术实现动态内存管理的方案。本方案的优势在于可以充分利用数据库技术,来检索动态内存的详细信息。在完成相关研究和方案设计的基础上,为验证方法的可行性,本文设计实现了一个基于内存数据库实现的动态内存管理系统——SQLMemPool程序。从对SQLMemPool程序进行测试的结果看,与传统动态内存管理方式对比,SQLMemPool虽然在综合性能上有所欠缺,但该方案是完全可行的。SQLMemPool在使用的过程中会产生保存了动态内存使用记录的数据库文件,通过检索此文件,可获取有关动态内存使用的详细信息。本文最后展示了如何检索关于动态内存使用的详细信息。