社区
C语言
帖子详情
内存碎片!!
liulili19830401
2008-11-27 12:02:08
1.如何防止出现内存碎片?
2.当出现内存碎片的事后如何做内存处理?
3.一个进程的虚拟地址空间出现内存碎片,有什么好的解决方案?
欢迎高手解析~~~
...全文
308
23
打赏
收藏
内存碎片!!
1.如何防止出现内存碎片? 2.当出现内存碎片的事后如何做内存处理? 3.一个进程的虚拟地址空间出现内存碎片,有什么好的解决方案? 欢迎高手解析~~~
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
23 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
liubuweiright
2008-11-28
打赏
举报
回复
顶
操作系统和回收机制
liulili19830401
2008-11-28
打赏
举报
回复
特别鸣谢"小星星"~~~
两种比较好的内存碎片的处理方法!
1引用计数
2内存池
spofmy
2008-11-28
打赏
举报
回复
顶啦
wudeshou82666
2008-11-28
打赏
举报
回复
[Quote=引用 18 楼 rulary 的回复:]
内存碎片问题,在设计像服务器这样的系统时,是很需要考虑的,因为像这样的系统往往需要长时间不间断的运行,
如果资源管理不好的话,那么很容易崩溃或者运行不了多长时间就要关闭系统进行维护,所以也不要小觑
[/Quote]
讲得挺好的
lin_style
2008-11-27
打赏
举报
回复
http://lin-style.javaeye.com/blog/256146
brookmill
2008-11-27
打赏
举报
回复
http://topic.csdn.net/t/20030325/19/1575812.html
http://blog.csdn.net/dzassn/archive/2007/09/12/1781974.aspx
brookmill
2008-11-27
打赏
举报
回复
http://blog.csdn.net/starlee1738/archive/2004/10/08/127698.aspx
jolly_ye
2008-11-27
打赏
举报
回复
[Quote=引用 9 楼 lbh2001 的回复:]
拜托,这个是OS考虑的问题
如果你实在很在意,那就使用内存池技术
绝大多数情况下没必要考虑这个,还是把时间放在设计和算法上
[/Quote]
upup
libing035
2008-11-27
打赏
举报
回复
mark
帅得不敢出门
2008-11-27
打赏
举报
回复
内存碎片无法杜绝 只有设计好的算法尽量避免生成碎片.
当你要频繁使用new malloc申请内存时并释放,可以考虑使用内存池
产生碎片这个一般不会做特定处理
只有当产生缺页中断时才会进行内存的交换调度,具体依赖与这个交换算法(而这是操作系统帮你做的事了)
wyswyg63
2008-11-27
打赏
举报
回复
up
lbh2001
2008-11-27
打赏
举报
回复
拜托,这个是OS考虑的问题
如果你实在很在意,那就使用内存池技术
绝大多数情况下没必要考虑这个,还是把时间放在设计和算法上
dzc8866
2008-11-27
打赏
举报
回复
UP
oo
2008-11-27
打赏
举报
回复
up
toadzw
2008-11-27
打赏
举报
回复
指内存分配时,二个内存间的小的空间无法分配给程序使用,对于内存珍贵的我们可以先分配大空间,然后在空间上进行操作,这样可以防内存碎片:如用new placement;
我认为一般不用处理;只能防;
liaoweixiaoyu
2008-11-27
打赏
举报
回复
up
就呆在云上
2008-11-27
打赏
举报
回复
我觉得这个文章说的非常好了
老外的见解,不晓得如何,希望楼主看看:
http://article.ednchina.com/2004-10/AtcShow2005128110353.htm
不过听说linux系统有内存碎片的自动处理机制,楼主也可以google一下,看看是怎么一回事呵呵
rularys
2008-11-27
打赏
举报
回复
内存碎片问题,在设计像服务器这样的系统时,是很需要考虑的,因为像这样的系统往往需要长时间不间断的运行,
如果资源管理不好的话,那么很容易崩溃或者运行不了多长时间就要关闭系统进行维护,所以也不要小觑
rularys
2008-11-27
打赏
举报
回复
真正的内存碎片,OS会帮打理的很好,程序需要考虑的是虚拟空间地址的碎片——内存地址被割裂成碎片,
这才是平常所说的内存碎片问题。说这个,是因为有人把这个问题又扯到OS了,然后我也不知道楼主说的
是第一种内存碎片还是第二种了~不过,如果是第一种,那么除非楼主自行修改OS,否则解决不了;如果是
第二种,我的经验就是,如果程序运行期内会有很频繁的内存申请与释放,并且是很零碎的内存快操作
的话,可以一开始向系统申请保留几块相当的内存空间(只是保留,实际上有没有被提交到物理内存那是
看OS的调度),以后每个空间块会被按相应的内存申请大小来使用——比如,一块用来提供所有细碎的内存
,一块用来提供那些需要比较大内存块的申请;最好就是,如果有反复申请/释放固定大小的内存块的地方,
那么这些地方将在同一个保留的内存空间块里面申请与释放。这样,就能比较好的控制内存碎片问题,因为
内存碎片被限定在了可知的保留空间区域内(细碎的内存申请/释放所产生的碎片,不会影响到那些不在同一个
保留空间区域的有固定大小和结构的内存块)。比如,用Windows的堆管理API就能办到
Longinc
2008-11-27
打赏
举报
回复
学习
加载更多回复(3)
此时无足够的可用
内存
,解决 vs2010 补丁
此时无足够的可用
内存
,无法满足操作的预期要求,可能是由于虚拟地址空间
碎片
造成的,请稍后重试 安装一下此补丁即可!
malloc、free与
内存
碎片
!!
malloc和free大量使用后回造成
内存
碎片
,那么这种
碎片
形成的机理是什么? 如果机理是申请的
内存
空间大小(太小)所形成的,那么,申请多大的区域能够最大限度的避免
内存
碎片
呢?(这里的避免不是绝对的避免,...
Redis
内存
碎片
详解
#
内存
碎片
清理所占用CPU时间的比例不低于20%#
内存
碎片
清理所占用CPU时间的比例不高于50%#
内存
碎片
占用空间达到500mb的时候开始清理。
内存
碎片
简单地理解为那些不可用的空闲
内存
。#
内存
碎片
率大于1.5的时候开始...
内存
碎片
和
内存
泄露
内存
碎片
:
内存
碎片
的产生: 1.动态
内存
分配问题:
内存
分配有静态分配和动态分配两种 静态分配在程序编译链接时分配的大小和使用寿命就已经确定,而应用上要求操作系统可以提供给进程运行时申请...
C++-----浅谈
内存
碎片
内存
碎片
即“
碎片
的
内存
”,它分为外
碎片
和内
碎片
,
内存
碎片
描述一个系统中所有不可用的空闲
内存
,这些
碎片
之所以不能被使用,是因为负责动态分配
内存
的分配算法使得这些空闲的
内存
无法使用,这一问题的发生,原因...
C语言
69,371
社区成员
243,080
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章