三维引擎中内存对象管理器的设计与实现

来源 :中国科学院大学 | 被引量 : 0次 | 上传用户:hb524656810123
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
近年来,伴随着中国的产业升级,三维引擎的仿真功能在工业界的重要性愈加提升。在包括三维引擎在内的各种大型程序中,生命周期与资源管理一直是业界的一个难题。  针对三维引擎程序中对象析构的问题,本文面向三维引擎中对象的资源释放,本文通过分析现有各种GC算法,配合项目组三维引擎的开发环境,提出并实现了一套框架,辅助程序员针对具有复杂引用关系的对象,完成对象持有资源的回收。工程由标准C++17实现,以头文件库的形式提供非侵入式的接口,辅助三维引擎程序中具有复杂声明周期的对象释放内存并执行析构动作,比如脚本解释器中的对象回收器,以及业务逻辑中存在复杂引用关系的对象。整个工程由包括内存分配器、托管指针赋值器、回收器、指针包装器在内的各个模块组成。课题为具有不同需求的开发者提供了两套接口:基于指针的上层接口和基于内存分配器包装器的底层接口。在三维引擎的开发和使用中,使用本工程提供的接口构造托管,配合对象本身的析构函数,开发者可以不修改现有类的前提下,完成循环引用对象的回收,以及析构动作的执行。程序运行结果表明,在引入了一定程度开销的环境下,本工程能够有效实现针对循环引用对象的释放动作。
其他文献
本文介绍了作者在面向嵌入式C语言的软件测试方面所做的工作,包括嵌入式C缺陷模型的描述以及使用扩展的缺陷模式状态机进行缺陷检测,通过设计缺陷模式的统一描述和统一检测框
紫外光通信作为一种新型的无线光通信技术,由于其自身的特点,具有保密性好、抗干扰能力强、全天候全方位性工作等特点。近几十年来,紫外光通信受到越来越多的重视,尤其适用在
互联网的诞生和发展,深刻的改变着人们的生活,极大地推动着社会的发展与进步,尤为值得一提的是互联网已经成为人们获取信息的一个非常重要的途径,互联网已经成为人们沟通、交
随着科学技术的发展,计算机辅助设计、网络和数据库技术的广泛应用,在工程绿化设计领域,图形、图纸的运用越来越多。这些图形文件数量庞大,种类众多,管理复杂,检索,查阅十分