`
caizi12
  • 浏览: 175078 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

jvm堆的内存分配

    博客分类:
  • jvm
阅读更多
jvm 参数如下
-Xms400m
-Xmn300m
-Xmx400m
-XX:PermSize=140M 
-XX:MaxPermSize=140M
-XX:+PrintGCTimeStamps
-XX:+PrintGCDetails
-verbose:gc
-Xloggc:gc.log
-Djava.rmi.server.hostname=127.0.0.1
-Dcom.sun.management.jmxremote.port=9880
-Dcom.sun.management.jmxremote.ssl=false 
-Dcom.sun.management.jmxremote.authenticate=false

启动myeclipse6.5,查看gc.log,只有一条gc信息:
2.253: [GC 2.253: [DefNew: 245760K->24701K(276480K), 0.0625636 secs] 245760K->24701K(378880K), 0.0626390 secs]

年轻代中内存区域分为Eden,Survivor1,Survivor2这三块,内存占用比例默认为8:1:1,由于新生代分配300m,所以Eden应该分配240M(245760K),Survivor1,Survivor2各为30M,通过jconsole查看各个区域所占内存与这此也相符



现再来分析gc原因,当DefNew(即为eden区,不知道为啥打印的日志名和jconsole上显示的名字不一样)内存达到245760K,正好为分配的240m,eden区内存已满开始回收,245760K->24701K,回收了245760K-24701K=215M,回收率还不错,还有25m左右没有回收。其中276480K经计算发现是eden+一个Survivor所占用内存,不知道何意?
245760K->24701K(378880K), 整个堆空间也就eden这一区进行了回收。
  • 大小: 52.3 KB
  • 大小: 42.1 KB
分享到:
评论

相关推荐

    JVM垃圾回收器和内存分配策略.docx

    JVM垃圾回收器和内存分配策略

    JVM垃圾回收机制与GC性能调优

    JVM堆相关知识 为什么先说JVM堆? JVM的堆是Java对象的活动空间,程序中的类的对象从中分配空间,其存储着正在运行着的应用程序用到的所有对象。这些对象的建立方式就是那些new一类的操作,当对象无用后,是GC来...

    java实现内存动态分配

    Java中分配堆内存是自动初始化的,即为一个对象分配内存的时候,会初始化这个对象中变量。虽然Java中所有对象的存储空间都是在堆中分配的,但是这个对象的引用却是在栈中分配,也就是说在建立一个对象时在堆和栈中都...

    jvm调优实战经验

    小池塘A(堆内存):JVM运行时数据区域,它为类实例和数组分配的内存。堆可以是固定大小的也可以是可变大小的。其中 Heap = {Old + NEW = { Eden , from, to } }。 小池塘B(非堆内存):包括所有线程之间共享的一个...

    FileNotFoundExcetion#learning-notes#JVM内存分配2

    jmap -heap pid可以查看应用程序堆的信息jstat可以打印元空间信息MC :分配到元空间大小MU:已使用的元空间大小 元空间是可以自己扩容的元空间:

    分别在Linux和Windows下设置JVM内存的简单方法

    Linux服务器: 在/usr/local/apache-tomcat-5.5.23/bin 目录下的catalina.sh 添加:JAVA_OPTS=’-Xms512m -Xmx1024m’ 或者 JAVA_OPTS=”-server -Xms800m -Xmx800m  -XX:MaxNewSize=256m” 或者 CATALINA_OPTS=”-...

    Java栈内存与堆内存

    Java把内存划分成两种:一种是栈内存,一种是堆内存。 在函数中定义的一些基本类型的变量和对象的引用变量都在函数的栈内存中分配。当在一段代码块定义一个变量时,Java就在栈中为这个变量分配内存空间,当超过...

    深入理解JVM内存结构及运行原理全套视频加资料.txt

    包括JVM执行过程、虚拟机类加载机制、运行时数据区、GC、类加载器、内存分配与回收策略等,全套视频加资料高清无密码  第1讲 说在前面的话 免费 00:05:07  第2讲 整个部分要讲的内容说明 免费 00:06:58  第3讲...

    深入JVM内核 - 原理、诊断与优化

    介绍常用的JVM参数,包括内存分配、堆栈分配、虚拟机运行模式以及调试跟踪参数。 第四课 GC的算法和种类 引用计数 标记清除 复制算法 标记压缩 可触及性 本章是理论性较强的一章,主要介绍GC的基本算法和思想,本...

    深入JVM内核—原理、诊断与优化

    第二周JVM运行机制简介堆、栈、方法区等JVM启动流程内存模型和volatile实例解释和编译运行的概念介绍JVM的内部结构、启动流程以及内存模型。并介绍JVM字节码的执行方式。第三周常用JVM参数堆的分配参数栈分 资源太大...

    JAVA 堆栈内存分析

    -Xmx3550m :设置JVM 最大堆内存为3550M 。 -Xms3550m :设置JVM 初始堆内存为3550M。此值可以设置与-Xmx 相同,以避免每次垃 圾回收完成后JVM 重新分配内存。 -Xss128k :设置每个线程的栈大小。JDK5.0 以后每个...

    jvm调优思维脑图

    主要包括:java内存结构、堆内存的构成、堆内存参数调整、垃圾收集算法、垃圾收集器选择、JVM参数、java对象的内存分配过程、Tomcat调优并使用Jmeter评测、参考资料等。希望对大家学习jvm有帮助。

    JVM内存管理及GC原理调优实战

    JVM调优是一个系统而又复杂的过程,由于Java虚拟机自动管理内存,在大多数情况下,我们基本上不用去调整JVM内存分配,因为一些初始化参数已经可以保证应用服务正常稳定地工作。但是当有性能问题的时候该怎么去调优,...

    Java内存分配分析/栈内存、堆内存

    首先学习JVM相关需要需要内存的组成。  基本内容  · 堆  java动态创建对象,即对于new的一个实例对象。但是需要注意的是该实例对象的成员变量都存储在各自的堆区域中,其中对象方法是在堆中共享,即不是每次...

    浅谈Java堆外内存之突破JVM枷锁

    主要介绍了浅谈Java堆外内存之突破JVM枷锁,涉及jvm内存分配,jvm垃圾回收,堆外内存的垃圾回收等相关内容,具有一定参考价值,需要的朋友可以了解下。

    Java进阶教程解密JVM视频教程

    彻底分析 StringTable的相关知识与性能优化,掌握直接内存分配原理和释放手段。 * 在垃圾回收章节,不仅会介绍垃圾回收算法、分代垃圾回收机制,还会重点介绍 G1 垃圾回收器,辨析 Full GC 发生条件,jdk8以来对垃圾...

    求你了,别再说Java对象都是在堆内存上分配空间的了!

    在JVM的内存结构中,比较常见的两个区域就是堆内存和栈内存(如无特指,本文提到的栈均指的是虚拟机栈),关于堆和栈的区别,很多开发者也是如数家珍,有很多书籍,或者网上的文章大概都是这样介绍的: 1、堆是线程...

    深入理解Java虚拟机视频教程(jvm性能调优+内存模型+虚拟机原理)视频教程

    第26节Java内存区域-堆内存00:05:08分钟 | 第27节Java内存区域-方法区00:06:32分钟 | 第28节Java内存区域-直接内存和运行时常量池00:15:53分钟 | 第29节对象在内存中的布局-对象的创建00:21:19分钟 | 第30节探究...

    JVM内存结构详解

    -Xms -Xmx -Xss的含义三、Java内存中堆和栈的区别——内存分配策略需要先了解区别四、元空间、堆、线程独占部分间的联系——内存角度五、不同JDK版本之间的intern()方法的区别——JDK6 VS JDK6+

Global site tag (gtag.js) - Google Analytics