收藏 分享(赏)

delphidispose释放内存的方法.docx

上传人:无敌 文档编号:42226 上传时间:2018-03-05 格式:DOCX 页数:2 大小:72.03KB
下载 相关 举报
delphidispose释放内存的方法.docx_第1页
第1页 / 共2页
delphidispose释放内存的方法.docx_第2页
第2页 / 共2页
亲,该文档总共2页,全部预览完了,如果喜欢就下载吧!
资源描述

1、delphi dispose 释放内存的方法 一、定义一个record 类型 经过多次 new dispose 后, 从windows 任务管理器看, 占用的内存比启动时 大了很多,似乎越来越大 。 二、设置 ReportMemoryLeaksOnShutdown := true 再运行, 仍然没有提示 memory leak。 其实就是 dispose 本身的原因。 delphi 设计的 dispose 释放内存时, 只是标记这部分内存可以再用来被 new 等函数分 配, 并不是把从系统申请到的内存归还给操作系统, 只在程序结束时, 才全部释 放给操作系统。比如 new 申请 15 个记录(

2、sizeof=64 字节) 的空间,然后 dispose 释放。再使用 new 申请 10 个,此时这 10 个就不再请求系统了,直 接从刚才的 15 个 (此时已经空闲) 中分10 个出来。只有在占用的空闲内存不 够使用时, 才请求操作系统分配内存 (剩余部分) 。 若前一次 15 个空间地址如左 列,释放后,下一次 10 个空间的地址如右列 ,即从前次分配的最后一个地址开 始,按前次的顺序,倒过来分配 10 个。 00F23860 00F23470 00F23818 00F234B8 00F237D0 00F23500 00F23788 00F23548 00F23740 00F23590

3、 00F236F8 00F235D8 00F236B0 00F23620 00F23668 00F23668 00F23620 00F236B0 00F235D8 00F236F8 00F23590 00F23548 00F23500 00F234B8 00F23470 注: 简单介绍一下: 若有如下类型定义,可以使用 new 申请空间,并在使用完 后使用dispose 释放。 Type PMyRec = TMyRec; TMyRec = record FName: string; LName: string; end; var MyRecPtr: PMyRec; TreeViewIndex: LongInt; begin New(MyRecPtr); MyRecPtr.FName := Edit1.Text; MyRecPtr.LName := Edit2.Text; 其他处理 Dispose(MyRecPtr); end;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报