内存整理

1.程序内存虚拟内存布局。

image

2.内存使用状态。

image

3.Win32平台下,使用内存的方式。

•(1)CRT函数系如malloc/new/free/delete等;

•(2)GlobalAlloc/LocalAlloc系列函数;

•(3)虚拟内存函数如VirtualAlloc/VirtualFree等;

•(4)内存映射文件函数CreateFileMapping/MapViewOfFile等;

•(5)堆内存函数HeapCreate/HeapAlloc等;

调用关系:

• new/malloc -> HeapAlloc –> VirtualAlloc

image

4.Coder自定义管理内存的方式。

•1.重载全局的new和delete操作符

•2.为单个类的new 和 delete 操作符重载

•3.为单个的类重载 new[ ]和delete[ ]

•4.内存池

5.内存工作集

image

6.内存耗尽处理。

•如果在申请动态内存时找不到足够大的内存块,malloc和new将返回NULL指针,宣告内存申请失败,建议使用如下方法进行处理:

•(1) 判断指针是否为NULL,如果是则马上用return语句终止本函数。

•(2) 判断指针是否为NULL,如果是则马上用exit(1)终止整个程序的运行。

•(3)使用set_new_handler为new和malloc设置异常处理函数。

7.常见使用错误。

•1.内存分配未成功,却使用了它。

•2.内存分配虽然成功,但是尚未初始化就引用它。

•3.内存分配成功并且已经初始化,但操作越过了内存的边界。

•4.忘记了释放内存,造成内存泄露。 

•5.释放了内存却继续使用它。

8.虚拟地址到物理地址映射

image

9.换页流程

image

说明:“脏”指的是上次进入物理内存中,是否被使用过。

10.内存碎片

image

11.主流内存管理方案

image

转载于:https://www.cnblogs.com/shenyantao/p/10649248.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值