[原]java gc与heap内存简述 2014-7-9阅读72?评论0 java内存结构和gc算法有很多种,二者也是互相决定的;使用不同的gc算法的jvm会有不同的内存结构。这里就简单整理下常见的sun jvm内存结构和回收算法。 一、jav...
分类:
其他好文 时间:
2015-11-17 19:34:11
阅读次数:
171
JVM垃圾回收机制总结(4) :新一代的垃圾回收算法
分类:
编程语言 时间:
2015-10-21 20:48:09
阅读次数:
180
以下配置主要针对分代垃圾回收算法而言。 堆大小设置 年轻代的设置很关键 JVM中最大堆大小有三方面限制:相关操作系统的数据模型(32-bt还是64-bit)限制;系统的可用虚拟内存限制;系统的可用物理内存限制。32位...
分类:
其他好文 时间:
2015-10-14 14:32:39
阅读次数:
157
转:http://pengjiaheng.javaeye.com/blog/552456JVM调优工具Jconsole,jProfile,VisualVMJconsole : jdk自带,功能简单,但是可以在系统有一定负荷的情况下使用。对垃圾回收算法有很详细的跟踪。详细说明参考这里JProfiler...
分类:
其他好文 时间:
2015-09-21 17:51:38
阅读次数:
140
引用计数法【原理】--->引用计数器是经典的也是最古老的垃圾收集防范。--->实现原理:对于对象A,只要有任何一个对象引用A,则计数器加1.当引用失效时,计数器减1.只要对象A的计数器值为0时,则A的为垃圾。--->引用计数器法存在两个缺陷: (1)无法处理循环引用的情况。A中引用B,B中引用A。无...
分类:
编程语言 时间:
2015-09-05 19:09:32
阅读次数:
212
Mark-Sweep 算法 标记-清除(Mark-Sweep)算法,分为 “标记”和 “清除”两个阶段:第一阶段标记出所有需要回收的对象, 在标记完成之后统一回收掉所有被比标记的对象。 这个算法主要有两个缺点: 1. 标记和清除过程的效率不高 2. 标记清除过后会产生大量不连续的内存碎片。由于空间碎...
分类:
编程语言 时间:
2015-08-30 00:51:34
阅读次数:
151
Linux 系统在为用户态进程和内核分配动态内存的时候,所作的检查是马马虎虎的对内核使用的许多磁盘高速缓存和内存高速缓存大小也同样不作限制。页框回收算法(PFRA):1、在所有内存使用完之前,就必须执行页框回收算法2、选择目标页,它获取页框,并且使之空闲3、候选回收页:任何属于磁盘和内存高速缓存的页...
分类:
系统相关 时间:
2015-08-21 17:04:40
阅读次数:
177
jvm的垃圾回收是个老生常谈的问题,在这里,我会从以下一个方面来和大家聊聊垃圾回收。
1 在哪里收垃圾?
2 哪些内容可认为是垃圾?
3 怎么回收垃圾?
4 gc报告的阅读
在哪里收垃圾
这里,我建议大家先读一下拙作: java内存管理
上图中的5部分:
虚拟机栈,本地方法栈,程序计数器三个区域随线程而生,随线程而灭;栈中的栈帧随着方法的进入和退出而有条不紊地执行...
分类:
编程语言 时间:
2015-08-20 13:17:52
阅读次数:
209
* 变量无需事先声明
* 变量无需指定类型
* 程序员不用关系内存管理
* 变量名会被回收
* del可以直接释放资源
1.python使用的是引用调用,而不是值调用,他使用的回收算法是引用计数算法,我下面举两个例子
x = 4
y = 4
aList = [1, 2, 3]
bList = [1, 2, 3]
print(x is y)
print(x == y)
print(a...
分类:
编程语言 时间:
2015-08-16 00:39:19
阅读次数:
165
如果还没看过第一篇的朋友请移步:JAVA内存回收(1)—深入浅出Java垃圾回收机制
任何垃圾收集算法必须完成两件事情。首先,它必须检测出垃圾对象。其次,它必须回收垃圾对象所占用的堆空间并使之对程序重新可用。
垃圾检测通常通过定义一个根引用集并计算其可达对象集的方式来实现。一个对象,如果可以通过某条始于根引用的引用路径而被执行程序访问到的话,则称其为可达的(reachable)。对程序...
分类:
编程语言 时间:
2015-08-15 10:29:31
阅读次数:
165