SquirrelMQ是一个快速的消息队列。SquirrelMQ特性:1. SquirrelMQ使用Slab内存分配算法来降低内存碎片,使用epoll来解决高并发问题。效率比redis要高,使用简单。2. 另外SquirrelMQ支持持久化,在down机的情况下也不用担心数据丢失。3. Squirre...
分类:
其他好文 时间:
2014-12-09 19:23:12
阅读次数:
346
linux内存管理概述
内存管理的目标:
提供一种方法,在各种目的各个用户之间实现内存共享,应该实现以下两个功能:
1、最小化管理内存的时间,内存申请和释放响应时间短
2、最优化用于一般应用的可用内存,内存管理(算法)所占用的内存少,浪费的内存少(内存碎片少)
下图为内存分配器的关系:
1、kmalloc用于分配一块以字节数为单位的内存,所分配的内存物理地址是连续的
void...
分类:
系统相关 时间:
2014-12-08 21:24:47
阅读次数:
235
在前面一文中,我们分析了Dalvik虚拟机创建Java堆的过程。有了Java堆之后,Dalvik虚拟机就可以在上面为对象分配内存了。在Java堆为对象分配内存需要解决内存碎片和内存不足两个问题。要解决内存碎片问题,就要找到一块大小最合适的空闲内存分配给对象使用。而内存不足有可能是内存配额用完引起的,也有可能是垃圾没有及时回收引起的,要区别对待。本文就详细分析Dalvik虚拟机是如何解决这些问题的。...
分类:
其他好文 时间:
2014-12-08 02:05:17
阅读次数:
250
STL是c++非常重要的一部分,它是很多大神的杰作,高效,稳定,可扩展性好,虽然STL确实存在难以调试,内存碎片的问题(现在机器的内存越来越大,内存碎片的问题基本不太可能成为系统瓶颈,但只要你使用恰当,它能显著提高生产力,并使代码更短,更易维护。
而在工程中,如果不养成好的使用习惯,也容易造成一些问题!...
分类:
编程语言 时间:
2014-12-06 21:36:39
阅读次数:
272
Memcached的内存算法: 1. 传统的内存管理方式是,使用完通过malloc分配的内存后通过free来回收内存,这种方式容易产生内存碎片并降低操作系统对内存的管理效率。 2. Memcached利用slab allocation机制来分配和管理内存,它按照预先规定的大小,将分配的内存...
分类:
系统相关 时间:
2014-12-05 18:59:22
阅读次数:
200
在innodb中实现了自己的内存池系统和内存堆分配系统,在innodb的内存管理系统中,大致分为三个部分:基础的内存块分配管理、内存伙伴分配器和内存堆分配器。innodb定义和实现内存池的主要目的是提供内存的使用率和效率,防止内存碎片和内存分配跟踪和调试。我们先来看看他们的关系和结构。
以下是它的关系结构图:
上图中的:
ut_mem_block块是基础内存管理
Buddy all...
分类:
数据库 时间:
2014-11-10 21:56:42
阅读次数:
400
Redis默认使用jemalloc分配内存,根据fast'14的最佳论文的说法,当遇到变长key-value负载时,会出现碎片问题:内存利用率低,实际分配的内存比所需要的内存多。因此我用YCSB对Redis的内存进行了测试。
实验的第1阶段:向Redis插入100万条记录,key为20字节,value为100字节,皆为定长,理论上的有效数据大约是120MB。阶段2:产生90万个update请...
分类:
其他好文 时间:
2014-10-29 17:05:59
阅读次数:
212
You'd have thought that memory leaks were a thing of the past now that we use .NET. True, but we can still hit problems. We can, for example, prevent ...
分类:
其他好文 时间:
2014-10-29 16:53:42
阅读次数:
330
Advanced .NET Debugging: Managed Heap and Garbage Collection(转载,托管堆查内存碎片问题解决思路)
分类:
Web程序 时间:
2014-10-28 23:43:26
阅读次数:
357