如何减少和防止内存碎片

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. 使用内存池来减少使用堆内存引起的内存碎片~
jsxdihao 2009-05-11
  • 打赏
  • 举报
回复
可以参考linux内存管理
goodname 2009-05-11
  • 打赏
  • 举报
回复
自己实现内存池的东西,自己管理和系统管理相结合。

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧