码迷,mamicode.com
首页 >  
搜索关键字:内存碎片    ( 257个结果
malloc原理和内存碎片
当一个进程发生缺页中断的时候,进程会陷入内核态,执行以下操作:1、检查要访问的虚拟地址是否合法2、查找/分配一个物理页3、填充物理页内容(读取磁盘,或者直接置0,或者啥也不干)4、建立映射关系(虚拟地址到物理地址)重新执行发生缺页中断的那条指令如果第3步,需要读取磁盘,那么这次缺页中断就是majfl...
分类:其他好文   时间:2014-07-03 22:30:43    阅读次数:217
.Net 垃圾回收和大对象处理
CLR垃圾回收器根据所占空间大小划分对象。大对象和小对象的处理方式有很大区别。比如内存碎片整理 —— 在内存中移动大对象的成本是昂贵的,让我们研究一下垃圾回收器是如何处理大对象的,大对象对程序性能有哪些潜在的影响。 大对象堆和垃圾回收 在.Net 1.0和2.0中,如果一个对象的大小超过8500.....
分类:Web程序   时间:2014-06-23 00:32:01    阅读次数:300
内存池设计与实现
转自:内存池设计与实现1. 内存池设计1.1 目的在给定的内存buffer上建立内存管理机制,根据用户需求从该buffer上分配内存或者将已经分配的内存释放回buffer中。1.2 要求尽量减少内存碎片,平均效率高于C语言的malloc和free。1.3 设计思路将buffer分为四部分,第1部分是...
分类:其他好文   时间:2014-05-31 17:49:57    阅读次数:290
一个让人崩溃的编码错误
最近写了一个接受socket数据包,然后再重组上层协议包的东西。每次read到数据就将数据添加到一个链表的尾部,然后检查是否收到了一个完整的包。为了减少内存碎片,把用过的链表节点添加到另外一个链表中,这样下次可以从这个cache链表中重用节点。        在debug的时候我把cache list中的数据打印出来,代码如下: struct seg_node {     void* bu...
分类:其他好文   时间:2014-05-25 21:31:09    阅读次数:326
Nginx系列三 内存池的设计
Nginx的高性能的是用很多细节来保证,epoll下的多路io异步通知,阶段细分化的异步事件驱动,那么在内存管理这一块也是用了很大心血,上一篇我们讲到了slab分配器,我们可以可以看到那是对共享内存的管理的优化。Nginx在进程内也实现了自己的内存池,目的在于减少内存碎片,减少向操作系统的申请次数,减低模块开发难度。Nginx实现的内存池实际上非常简单。...
分类:其他好文   时间:2014-05-08 00:37:29    阅读次数:403
GC使用注意
GC.Collect()GC.WaitForPendingFinallizers()GC.KeepAlive尽量不要new很大的Object不要频繁的new生命周期很短的Object,这样会导致很多内存碎片引起频繁的压缩
分类:其他好文   时间:2014-05-05 21:47:03    阅读次数:448
压缩 MongoDB 的数据文件
MongoDB采用了磁盘空间预分配的机制,为了避免磁盘碎片以及使用mmap后造成的近一步的内存碎片,但是随着数据的增删除改操作,数据文件不可避免的会产生空洞,造成磁盘空间和内存的浪费。本文说的是这方面的压缩,数据使用某些压缩算法进行压缩的讨论不在此范围。在MongoDB 中,大概有两种方法可以解决这...
分类:数据库   时间:2014-05-01 15:55:48    阅读次数:428
257条   上一页 1 ... 24 25 26
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!