`
caizi12
  • 浏览: 175958 次
  • 性别: 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内存空间分配笔记

    ### JVM内存空间分配详解 #### 一、JVM内存模型概览 ...综上所述,理解JVM内存分配机制对于Java开发者来说至关重要,这不仅有助于编写高效、稳定的代码,还能在遇到性能瓶颈时快速定位问题并进行优化。

    Jvm对象内存分配理解

    Jvm 对象内存分配是 Java 虚拟机(Jvm)中的一种机制,用于在堆中分配对象的内存空间。该机制涉及到类加载检查、内存分配、对象初始化等多个步骤。 类加载检查 在 Jvm 对象内存分配中,首先需要对类进行加载检查。...

    java中jvm内存分配相关资料总结整理

    本资料总结主要关注JVM内存分配及其运行原理,这对于理解和优化Java应用程序的性能至关重要。 1. **JVM内存结构** JVM内存分为几个关键区域:方法区(Method Area)、堆(Heap)、栈(Stack)、程序计数器(PC ...

    JVM堆内存溢出后,其他线程是否可继续工作的问题解析

    JVM堆内存溢出后,其他线程是否可继续工作的问题解析 JVM堆内存溢出是Java开发中常见的问题之一,当堆内存溢出时,其他线程是否可继续工作?这是一道经典的面试题。通过对JVM堆内存溢出的分析,我们可以了解到当一...

    JVM初始分配的内存.doc JVM初始分配的内存.doc

    - **意义**:合理设置初始堆内存大小有助于优化JVM的启动时间,并且可以避免由于初始堆内存过小导致的频繁垃圾回收问题。 ##### 2. `-Xmx`: 最大堆内存大小 - **定义**:指定了JVM运行过程中所能使用的最大堆内存...

    java -jvm 内存分配和jvm调优

    Java JVM(Java虚拟机)内存分配与调优是Java开发者必须掌握的重要技能,它涉及到程序的性能优化和稳定性。在Java应用中,JVM扮演着至关重要的角色,它负责解析字节码、管理内存以及执行线程等。本文将深入探讨JVM...

    JVM内存溢出问题解析

    JVM 内存区域组成包括栈内存和堆内存。栈内存用于存放基本类型变量和对象的引用变量,而堆内存用于存放由 new 创建的对象和数组。堆的优势是可以动态分配内存大小,生存期也不必事先告诉编译器,但缺点是要在运行时...

    JVM初探- 内存分配、GC原理与垃圾收集器

    首先,JVM内存分配策略主要涉及对象如何在堆内存的不同区域进行分配。对象在新生代Eden区进行分配,这是内存分配最频繁的区域。为了减少内存分配时的线程同步问题,JVM引入了本地线程分配缓冲(TLAB),允许每个线程...

    JVM内存分配与垃圾回收详解

    JVM 内存分配主要涉及到五个运行时数据区域:程序计数器、Java 虚拟机栈、本地方法栈、Java 堆、方法区。 1. 程序计数器:它是线程私有的,一块较小的内存空间,它的作用可以看做是当前线程所执行的字节码的行号...

    JVM堆内存分析工具,OOM排查工具。包括ha和mat两种

    "JVM堆内存分析工具"如HA(HeapAnalyzer)和MAT(Memory Analyzer Tool)就是专门为此设计的,它们能够帮助开发者深入洞察内存的分配、使用以及可能存在的内存泄漏问题。 首先,HA(HeapAnalyzer)通常是一个简单的...

    MemoryAnalyzer JVM堆内存分析工具

    《深入解析MemoryAnalyzer:JVM堆内存分析利器》 在Java开发中,内存管理是至关重要的环节,良好的内存管理能够优化应用性能,防止内存泄漏,提升系统稳定性。MemoryAnalyzer(MAT)是一款强大的JVM堆内存分析工具...

    03-VIP-JVM内存分配机制与垃圾回收算法1

    Java虚拟机(JVM)内存分配机制和垃圾回收(Garbage Collection, GC)是Java编程中的核心概念,它们直接影响到程序的性能和稳定性。本文主要围绕JVM内存区域的分配策略,尤其是对象在新生代(Young Generation)的...

    java虚拟机jvm及Tomcat中的jvm有关内存的设置与调优

    通过命令行参数,我们可以精细地控制JVM的内存分配,以适应不同的应用场景。以下是一些关键参数的解读与实践指南: 1. **-Xms**:设置JVM初始堆内存大小。保持-Xms和-Xmx相等,有助于减少GC停顿时间,尤其在Server...

    JVM内存参数详解以及配置调优

    堆内存分配 JVM 初始分配的内存由-Xms 指定,默认是物理内存的 1/64;JVM 最大分配的内存由-Xmx 指定,默认是物理内存的 1/4。默认空余堆内存小于 40% 时,JVM 就会增大堆直到-Xmx 的最大限制;空余堆内存大于 70% ...

    java获得jvm内存大小

    - `maxMemory()`:返回JVM堆内存的最大值,即JVM启动时设定的最大堆内存容量。 - `freeMemory()`:返回JVM堆内存中未被使用的部分,即剩余可用内存。 示例代码如下: ```java long heapSize = Runtime.getRuntime...

    jvm 内存分析文档

    JVM内存管理主要包括内存结构、内存分配以及垃圾回收(GC)等方面。了解这些知识对于优化Java应用程序的性能至关重要。 ### 1. JVM内存结构 #### 1.1.1 JVM内存概述 JVM内存分为几个关键区域,每个区域都有特定的...

    Java中堆内存与栈内存分配浅析

    ### Java中堆内存与栈内存分配浅析 #### 一、引言 在Java编程语言中,内存管理是一项至关重要的技术。程序运行时所使用的内存主要分为两类:堆内存(Heap Memory)和栈内存(Stack Memory)。理解这两种内存类型的...

    mat(mac)---jvm内存分析工具

    MAT能够分析内存中的碎片,这在优化内存分配和减少内存碎片化方面非常有用。 7. **Plots**: MAT提供的图表功能可以帮助可视化内存使用情况随时间的变化,以便更好地理解内存行为。 8. **比较堆转储**: 用户...

Global site tag (gtag.js) - Google Analytics