- 1、本文档共43页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
UEF大内存管理的实现与使用 2006年05月24日 UEF大内存管理的实现与使用 导言 培训内容 介绍一种抗碎片的动态内存管理方法,以及UEF中的实现与使用方法。 UEF大内存管理的实现与使用 导言 培训目标 了解UEF中大内存管理的设计思想和适用情况,并且掌握它的使用方法。 UEF大内存管理的实现与使用 导言 准备知识 —— C/C++中的存储模型 UEF大内存管理的实现与使用 什么是动态内存 UEF大内存管理的实现与使用 什么是动态内存 动态内存就是在程序运行过程中动态的分配和释放的内存资源,相对的有静态内存(程序装载时分配并一般由操作系统在程序结束时释放)和栈内存(运行时自动调整栈指针分配和释放,先分配的后释放)。 UEF大内存管理的实现与使用 标准动态内存管理 malloc() / free() new / delete UEF大内存管理的实现与使用 标准动态内存管理 通用性和易用性 UEF大内存管理的实现与使用 标准动态内存管理 缺点和不足 UEF大内存管理的实现与使用 标准动态内存管理 缺点和不足 内存碎片(Fragment) UEF大内存管理的实现与使用 什么是内存碎片 UEF大内存管理的实现与使用 什么是内存碎片 反复随机分配和释放之后,形成的空洞,导致动态内存利用率降低。 UEF大内存管理的实现与使用 内存碎片的形成原因 UEF大内存管理的实现与使用 内存碎片的形成原因 UEF大内存管理的实现与使用 内存碎片的形成原因 总未分配空间=2+3+5+100=110KB 最大可分配空间=100KB UEF大内存管理的实现与使用 内存碎片的形成原因 大量尺寸不一的对象 对象的分配和释放是随机发生的 计算机的内存是线性排列的,并且通过指针访问动态内存。 UEF大内存管理的实现与使用 克服内存碎片的方法 夯实(Compaction) UEF大内存管理的实现与使用 什么是夯实 通过移动已分配的对象,使对象成线性排列,可以取回碎片造成的内存空间缺失。 UEF大内存管理的实现与使用 夯实的效果 UEF大内存管理的实现与使用 夯实的效果 UEF大内存管理的实现与使用 已知应用 Palm OS Macintosh OS Lisp, Java, Smalltalk UEF大内存管理的实现与使用 UEF中的实现 UEF大内存管理的实现与使用 UEF中的实现 技术要求 易用性 安全性 快速整理 快速访问 UEF大内存管理的实现与使用 UEF中的实现 句柄分配 句柄是一个内存块的代理对象,内存的使用者和句柄交互,而实际的内存资源由句柄管理和维护。 UEF大内存管理的实现与使用 UEF中的实现 句柄解决的问题 当内存块发生移动后,句柄维护的指针指向新的地址,而用户可以通过句柄存取正确的内存。 UEF大内存管理的实现与使用 UEF中的实现 对象表 用于管理句柄的查找表,支持随机访问 简单的线性表实现 UEF大内存管理的实现与使用 UEF中的实现 存取方法 直接使用指针访问,比每次都通过句柄间接访问要更快速,也更方便。 例如可以使用memcpy等直接操作内存的函数。 UEF大内存管理的实现与使用 UEF中的实现 安全存取 使用指针访问的过程中,可能发生碎片整理过程,导致指针无效。 UEF大内存管理的实现与使用 UEF中的实现 安全存取 使用指针访问的过程中,可能发生碎片整理过程,导致指针无效。 UEF大内存管理的实现与使用 UEF中的实现 锁定句柄 当一个句柄锁定之后,碎片整理会跳过对该句柄使用的内存块的移动。 UEF大内存管理的实现与使用 UEF中的实现 自适应碎片整理策略 根据碎片率自动选用不同的整理策略。 UEF大内存管理的实现与使用 UEF中的实现 自适应碎片整理策略 注:当分配失败时,顺序整理直到足够分配 策略是封闭的,但是在内部可以继续演变 UEF大内存管理的实现与使用 UEF中的实现 多任务考虑 目前的实现中没有考虑对多任务的支持,包括分配、释放和整理之间的互斥操作。可以通过简单的增加一组C API封装提供原子级分配、释放和整理操作。 整理是相对耗时的操作,如果可以提供更细粒度的并发操作更好,目前没有方案。 UEF大内存管理的实现与使用 UEF中的实现 使用方法 UEF大内存管理的实现与使用 UEF中的实现 使用方法 C风格API 分配: void lalloc(UBufferHandler* handler, size_t size) 释放: void lfree(UBufferHandler* handler) UEF大内存管理的实现与使用 UEF中的实现 使用方法 C风格API 分配: void lalloc(UBuffe
您可能关注的文档
- Win2003_TPCHAP7灾难恢复.ppt
- Windows 2000操作系统概述.ppt
- WIndows XP八种启动模式详解 演示文稿.ppt
- Windows系统编程.ppt
- Windows系统管理-chap09-v1.0.ppt
- wjq第3章-3.7-3.9-ARM7存储器组织.ppt
- workbench课件.ppt
- XT800_TTT_电信_final.ppt
- XT800-特色功能介绍.ppt
- zhy第2章用户界面.ppt
- 2024临床执业医师综合提升测试卷附答案详解【达标题】.docx
- 跨境家居用品电商2025年本土化营销创新模式与竞争优势.docx
- 智慧农业无人机植保作业效率提升关键指标体系构建报告.docx
- 跨境家居用品电商2025年本土化数据驱动运营分析.docx
- 跨境家居用品电商2025年本土化用户需求调研报告.docx
- 元宇宙社交平台隐私保护案例分析:2025年安全防护策略.docx
- 教师人工智能素养培训模式的创新与优化.docx
- 跨境家居用品本土化电商品牌合作模式研究报告.docx
- 共享办公空间增值服务在2025年打造智慧办公生态圈战略规划.docx
- 跨境电商厨房电器品牌2025年渠道拓展渠道拓展模式创新研究报告.docx
最近下载
- 用人单位劳动合同模板.doc VIP
- 华熙生物-投资价值分析报告:全球最大透明质酸生产商的产业链延伸.pdf VIP
- 20200522-中信证券-华熙生物-688363-投资价值分析报告:研发驱动,服务美好生活.pdf VIP
- 医药生物行业:华熙生物,全球透明质酸领军企业.docx VIP
- 2025年校园监控系统方案(四篇).pdf VIP
- 2025广西公需科目考试答案(3套涵盖95-试题)一区两地一园一通道建设人工智能时代的机遇与挑战.docx VIP
- 华熙生物-投资价值分析报告-透明质酸,供需双振_20200413.pdf VIP
- 2025年校企合作实训项目设计与实施案例报告.docx
- 华熙生物-投资价值分析报告-全球透明质酸龙头,积极延伸医疗美妆终端.pdf VIP
- 重庆市巴蜀初一入学分班语文试卷版.doc VIP
文档评论(0)