jvm
文章平均质量分 67
iteye_123
这个作者很懒,什么都没留下…
展开
-
jvm 内存管理(一)
jvm 运行时数据区,包含 栈:(线程独有) 本地方法栈(Native Method Stack) 为了JVM 执行 native方法而 存在,起到类似VM Stack的作用,HotSpot 就把 本地和虚拟的合并。 虚拟机栈(VM Stack),又称栈帧(Stack Frame),用于保存局部变量表,操作栈,动态链接,方法出口 ...原创 2014-11-03 22:02:19 · 56 阅读 · 0 评论 -
CMS 收集器
CMS的整理 CMS是HotSpot VM的server模式下的垃圾收集器,主要作用在Old,Young的回收主要还是使用Paraell收集器 CMS设计的目的是low pause time,垃圾收集过程包含4步: <!--[if !supportLists]-->1. <!--[endif]-->初始标记(并行,STW),对Old进行第一次标记,找出所...原创 2014-12-15 20:50:22 · 116 阅读 · 0 评论 -
OutOfMemoryError
从javadoc上,发现的OutOfMemoryError发生的真正原因: if more than 98% of the total time is spent in garbage collection and less than 2% of the heap is recovered, an OutOfMemoryError will be thrown 当98%的时间被用来GC,只有...原创 2014-12-09 13:14:59 · 65 阅读 · 0 评论 -
jvm文章
http://www.infoq.com/articles/Java-Application-Hostile-to-JIT-Compilation原创 2014-12-05 07:49:54 · 67 阅读 · 0 评论 -
Memory leak reason
1. 高内存使用 现在的生产环境都是10,20GB以上的内存,而代码方面的不严谨不修改,盲目的增加内存,加大heap,会导致当系统在大内存下进行gc时的STW的时间变长,这是最常见的高内存使用问题 2. HTTP session 当做cache 因为http session的易用性,很多开发把太多的object存放在HTTP session中,导致session越来越大(每个用户一个),...原创 2014-11-23 19:45:22 · 133 阅读 · 0 评论 -
GC 特点
需要注意的是HotSpot虚拟机使用了两种技术来加快内存分配。他们分别是是”bump-the-pointer“和“TLABs(Thread-Local Allocation Buffers)”。 Bump-the-pointer技术跟踪在伊甸园空间创建的最后一个对象。这个对象会被放在伊甸园空间的顶部。如果之后再需要创建对象,只需要检查伊甸园空间是否有足够的剩余空间。如果有足够的空间,对象就会被...原创 2014-11-22 21:45:56 · 295 阅读 · 0 评论 -
jvm内存管理(四)
垃圾回收(GC)三个关注点:1. 什么内存需要回收根据内存区域来说,线程相关的(VM Stack, Native Method Stack,程序计数器)在线程结束时被回收,所以堆中的对象是GC的重点判断对象是否可被回收,主流JVM使用根搜索算法,即判断对象是否有到任何一个GC Root对象的引用链,如果没有就是可以被回收的GC Root对象包括: VM Stack(本地变量表)中引用的对象方...原创 2014-11-04 16:50:20 · 57 阅读 · 0 评论 -
jvm内存管理(三)
jvm 启动参数, 内存相关 -Xms : 最小堆大小 -Xmx: 最大堆大小 -XX:+HeapDumpOnOutOfMemoryError: 发生OutOfMemory异常时的堆快照 -Xss:栈大小 -XX:PermSize: 方法区最小大小 -XX:MaxPermSize: 方法区最大大小 -XX:MaxDirectMemorySize 最大直接内存大小,默认和-Xmx一样...原创 2014-11-04 13:21:43 · 55 阅读 · 0 评论 -
jvm内存管理(二)
关于对象访问 Object o = new Object() 此语句将会在 堆中 开辟空间存储 new Object()的实例信息,同时还必须包括对象类型,父类,实现的接口,方法等信息的地址信息(这些保存在方法区中) reference 类型 保存的是指向对象的引用,具体的实现方式根据jvm的不同,一般有两种 1. 句柄, 即在jvm堆中保存了,一个句柄池,方法区的reference保存...原创 2014-11-04 13:07:14 · 53 阅读 · 0 评论 -
G1 收集器
G1 是jdk7之后的最新的垃圾收集器,目的是取代CMS,达到更小的pause time更高的throughput的目的,能够压缩(CMS不行),更少的停顿(CMS两次),并且可以让用户配置更希望的停顿(pause time goal 不准) G1的原理是,将整个heap分成大小相等的一个个region(每个region的大小1-32M,原理是region个数在2048左右,可以通过参数-XX:...原创 2014-12-16 13:07:44 · 125 阅读 · 0 评论