码迷,mamicode.com
首页 >  
搜索关键字:内存碎片    ( 257个结果
Java学习笔记
1、GC分代假设绝大多数对象的生命周期都很短,存活时间短暂。因此GC算法首先关注的即是这些短命对象。对于负载不高的应用来说,也不会发生fullGC的现象。这点提醒我们,应尽可能使对象生命周期缩短。有些程序员会尽可能地减少new对象的次数,尝试减小堆的分配开销,减少内存碎片,但短命对象的创建在JVM中...
分类:编程语言   时间:2015-04-21 01:44:47    阅读次数:132
Memcahce和Redis比较
一、Memcache1. memecache 把数据全部存在内存之中,断电后会挂掉,数据不能超过内存大小redis有部份存在硬盘上,这样能保证数据的持久性。2. Memcache使用了Slab Allocator的内存分配机制:按照预先规定的大小,将分配的内存分割成特定长度的块,以完全解决内存碎片问...
分类:其他好文   时间:2015-04-20 16:30:45    阅读次数:115
ART运行时Semi-Space(SS)和Generational Semi-Space(GSS)GC执行过程分析
Semi-Space(SS)GC和Generational Semi-Space(GSS)GC是ART运行时引进的两个Compacting GC。它们的共同特点是都具有一个From Space和一个To Space。在GC执行期间,在From Space分配的还存活的对象会被依次拷贝到To Space中,这样就可以达到消除内存碎片的目的。本文就将SS GC和GSS GC的执行过程分析进行详细分析。...
分类:其他好文   时间:2015-04-20 01:52:15    阅读次数:256
ART运行时Compacting GC为新创建对象分配内存的过程分析
在引进Compacting GC后,ART运行时优化了堆内存分配过程。最显著特点是为每个ART运行时线程增加局部分配缓冲区(Thead Local Allocation Buffer)和在OOM前进行一次同构空间压缩(Homogeneous Space Compact)。前者可提高堆内存分配效率,后者可解决内存碎片问题。本文就对ART运行时引进Compacting GC后的堆内存分配过程进行分析。...
分类:其他好文   时间:2015-04-13 01:45:17    阅读次数:412
虚拟内存管理
1、什么是虚拟内存虚拟内存是计算机系统内存管理的一种技术。它使的应用程序认为他拥有连续的可用内存(一个连续完整的地址空间),而实际上,他通常是被分割成多个物理内存碎片,还有部分暂时存储在外部磁盘存储器上,在需要时进行数据交换。注意:虚拟内存不只是“用磁盘空间来扩展物理内存”的意思--这只是扩充内存级...
分类:其他好文   时间:2015-04-09 15:10:51    阅读次数:103
【转】内存池设计与实现
1. 内存池设计1.1 目的在给定的内存buffer上建立内存管理机制,根据用户需求从该buffer上分配内存或者将已经分配的内存释放回buffer中。1.2 要求尽量减少内存碎片,平均效率高于C语言的malloc和free。1.3 设计思路将buffer分为四部分,第1部分是mem_pool结构体...
分类:其他好文   时间:2015-04-08 21:19:54    阅读次数:168
C语言的内存分配
内存分为五大区:1.栈区:在函数内部声明的变量都存在栈区,只管申请,系统会帮我们自动释放,释放的时间是作用域结束,遵循先进后出(first in last off(FILO)),栈的开辟是连续的,不会造成内存碎片,效率比较高(用来存放临时变量和正在运行的函数,当函数被调用的时候就会入栈,执行完毕的时...
分类:编程语言   时间:2015-04-04 20:58:47    阅读次数:158
空间的配置和释放 std::alloc
看完了对象的构造行为和内存释放前的对象的析构行为,我们现在来看看内存的配置和释放。对象构造前的空间分配和析构后的空间释放,定义在头文件中。其设计思想是:向system heap要求空间。考虑多线程状态。考虑内存不足时的应变措施。考虑过多“小额区块”可能造成的内存碎片问题。C++的内存配置基本操作时:...
分类:其他好文   时间:2015-03-17 00:47:09    阅读次数:135
TCMalloc
一. 原理tcmalloc就是一个内存分配器,管理堆内存,主要影响malloc和free,用于降低频繁分配、释放内存造成的性能损耗,并且有效地控制内存碎片。glibc中的内存分配器是ptmalloc2,tcmalloc号称要比它快。一次malloc和free操作,ptmalloc需要300ns,而t...
分类:其他好文   时间:2015-03-13 18:26:40    阅读次数:414
高性能之内存池
内存池(Memory Pool)是一种内存分配方式。 通常我们习惯直接使用new、malloc等API申请分配内存,这样做的缺点在于:由于所申请内存块的大小不定,当频繁使用时会造成大量的内存碎片并进而降低性能。内存池则是在真正使用内存之前,先申请分配一定数量的、大小相等(一般情况下)的内存块留作备用。当有新的内存需求时,就从内存池中分出一部分内存块,若内存块不够再继续申请新的内存。这样做的一个显著优点是尽量避免了内存碎片,使得内存分配效率得到提升。 (1)针对特殊情况,例如需要频繁分配释放固定大小的内存对象...
分类:其他好文   时间:2015-02-27 21:36:28    阅读次数:244
257条   上一页 1 ... 20 21 22 23 24 ... 26 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!