社区
C语言
帖子详情
如何减少和防止内存碎片
david-yue
2009-05-11 07:00:16
如何减少和防止内存碎片的产生,高手赐教!
...全文
858
8
打赏
收藏
如何减少和防止内存碎片
如何减少和防止内存碎片的产生,高手赐教!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
fly_new
2009-05-11
打赏
举报
回复
先了解你的内存管理是怎么划分内存出来的,有的是最小一页,有的是用多少给多少,有的是事先分配很多规格的内存(不是一页一页的)等等;还有就是它的碎片整理方案。有的是在分配不出来了再去整理,有的是你一释放就整理,有的是一个独立任务在异步整理等等等!!!!!!!!!整理内存碎片和内存块的分割又有很多方案。总之,对症下药,太笼统不好说。不过楼上很多大侠都说了,你可以自己事先申请一个大内存,然后最近分那存,这样你的方案你就知道的,然后你自己申请内存的时候,心里有个数。
ZPZ07117007
2009-05-11
打赏
举报
回复
申请之后 将他们释放
光宇广贞
2009-05-11
打赏
举报
回复
尽可能申请大块的2的指数次幂大小的内存空间。
尽可能少地申请空间。
做内存池,也就是自己一次申请一块足够大的空间,然后自己来管理,用于大量频繁地new/delete操作。
机智的呆呆
2009-05-11
打赏
举报
回复
用new或 malloc申请内存尽量是大块内存的~~~
小块的用内存池实现~~~
lz可参考一下 SGl stl的分配器的实现~~
liliangbao
2009-05-11
打赏
举报
回复
1. 尽量少使用堆上的内存空间~
2. 使用内存池来减少使用堆内存引起的内存碎片~
猫已经找不回了
2009-05-11
打赏
举报
回复
http://topic.csdn.net/t/20040314/10/2840669.html
参考下
jsxdihao
2009-05-11
打赏
举报
回复
可以参考linux内存管理
goodname
2009-05-11
打赏
举报
回复
自己实现内存池的东西,自己管理和系统管理相结合。
需求
碎片
化时代,从编程到设计的心灵鸡汤【上集】
在大数据时代,业务需求
碎片
化成为潮流,因而软件系统日趋
碎片
化。只要将内容与形式分离,并关注形式就能掌握架构设计的精髓。尤其,在互联网&大数据时代里,需求
碎片
化成为主流趋势。需要以形式封装内容的多变...
如何
减少
和
防止
内存
碎片
的产生
用new或 malloc申请
内存
尽量是大块
内存
的~~~ 小块的用
内存
池实现~~~ lz可参考一下 SGl stl的分配器的实现~~ 尽可能申请大块的2的指数次幂大小的
内存
空间。 尽可能少地申请空间。 做
内存
池,也就是自己一次申请一块足够大的空间,然后自己来管理,用于大量频繁地new/delete操作
内存
碎片
:理解、应用场景和
防止
措施
内存
碎片
:理解、应用场景和
防止
措施
内存
碎片
概念及主要避免方式
内存
碎片
用来描述一个系统中不可用的空闲
内存
。
减少
内存
碎片
的产生可以有效增强嵌入式系统稳定性。
内存
分配浪费
内存
主要分额外开销,内部
碎片
,外部
碎片
。内部
碎片
是在动态开辟
内存
时大小四舍五入而产生的多余空间;外部
碎片
指已经分配
内存
块之间出现未被使用的差额。在嵌入式系统中外部
碎片
是编程过程中不可小瞧的敌人。 避免内部
碎片
的部分解决方式: (1)少用动态
内存
分配的函数(尽量使用栈空间)。 (2)分配
内存
和释放
内存
尽量在同一个函数。 (3)尽量一次性申...
如何
减少
linux
内存
碎片
1. 什么式
内存
分配以及
内存
碎片
内存
分配是虚拟
内存
分配vma,虚拟
内存
在内核是一个连续的空间(这里内核只是管理vma的其实地址和结束地址,所以占用很小)。在运行过程中mmap时,由于虚拟
内存
各个线程式共享的,所以分配vma会加锁,在多线程中表现不佳。第二,在长期运行过程中,vma导致
碎片
会,在分配中,查找vma可用gap的时间可能很长,最坏时间时o(n),同时也会引起vma红黑树的深度增加,查找,删除,增加时长增加。所以
减少
内存
碎片
在提高性能和
内存
利用率十分重要。 同时由于
碎片
导致页表项变...
C语言
69,382
社区成员
243,073
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章