`

java GC 内存变化浅析

阅读更多
 
在指定jvm的运行参数-Xms1024m -Xmx1024m后(这两个参数指定的是heap内存),在heap没有到达1024m以前,gc只会进行一般gc,也就是只对heap中的
年轻代进行回收;当heap到达1024m中,gc会做Full gc,也就是会对整个heap进行回收,包括年轻代和中年代。
 
所以你有时会观察到这样一种现象,一开始java应用的内存不断增加,但到达一个峰值后就不会增加,这是正常想象,因为一开始Gc没有回收heap的中年代object,
直到整个heap空间到达1024m极限。jvm这样做是尽量减少Gc对应用程序的影响,因为Full Gc比普通的Gc更耗系统资源。
 
如有需要,可以有Jconsole等工具对jvm的heap内存进行观察。
分享到:
评论

相关推荐

    Java 内存区域和GC机制

    Java内存区域和垃圾收集(GC)机制是Java编程中至关重要的一部分,它关乎程序的性能、稳定性和资源管理。本文将深入探讨Java虚拟机(JVM)中的内存划分、垃圾收集的工作原理以及相关工具的使用。 1. **Java内存区域...

    Java GC的过程

    在理解GC之前,我们先来看一下Java内存模型。Java内存主要分为三个区域:堆(Heap)、栈(Stack)和方法区(Method Area)。其中,堆是GC的主要工作区域,用于存储对象实例;栈则为每个线程分配一个,存放基本类型...

    poi大量数据读取gc内存溢出解决方案

    poi读取大量数据会造成gc内存溢出的报错,由于垃圾回收机制无法将大量的对象及时的回收,而这些对象又会保存在内存中,会导致内存不够用的情况,这时候我们就需要使用新的方法,读取为cvs即可.此解决方案可支持千万数据的...

    Java GC与性能调优

    JVM 的内存管理与内存回收是 Java GC 与性能调优的核心内容。JVM 的内存结构可以分为以下几个部分: * 栈:用于存放临时变量、参数和中间结果。 * 本地方法栈:用于支持 native 方法的执行,存储了每个 native 方法...

    java实现内存动态分配

    Java 实现内存动态分配主要涉及Java内存模型以及内存管理机制,包括堆内存和栈内存的分配,以及垃圾回收等概念。下面将详细解释这些知识点。 1. **Java内存模型** Java程序运行时,内存分为堆内存(Heap)和栈内存...

    Java_GC垃圾回收调优指南

    - 即使Ergonomics极大地提升了开箱即用的应用程序体验,但最优配置通常需要更多关注Java内存区域的大小。 - Java应用程序的最大堆大小受以下三个因素限制: - 进程数据模型(32位或64位)及操作系统限制 - 系统...

    Java内存泄露及内存无法回收解决方案

    Java内存管理是编程中至关重要的一个环节,尤其是对于大型、长时间运行的应用来说,内存泄漏和内存无法回收可能导致系统性能下降,甚至导致系统崩溃。本文将深入探讨Java内存泄露的原理,分析内存无法回收的原因,并...

    VisualGC 内存监控工具

    VisualGC作为JVM(Java虚拟机)内存监控的插件,为开发者提供了直观且详尽的内存使用情况,帮助我们理解和解决内存泄漏、垃圾收集等问题。本文将深入探讨VisualGC的使用及其在JDK1.8中的应用。 首先,VisualGC是...

    基于Java的内存泄露分析及定位

    Java内存管理是一个关键的议题,尤其对于开发大型和长期运行的应用程序来说,内存泄漏可能导致性能下降,甚至引发严重的系统故障。内存泄漏通常发生在程序错误地管理内存,导致某些不再使用的对象无法被垃圾收集器...

    Java基础[Java基础]--Java GC工作原理

    在Java中,GC的存在极大地简化了内存管理过程,减少了由程序员手动管理内存可能导致的内存泄漏等问题。Java虚拟机(JVM)中的GC机制会定期检查堆内存中的对象,判断它们是否仍处于活动状态。如果某个对象不再被任何...

    java内存管理以及GC

    内存管理简介 内存管理的职责为分配内存,回收内存。 没有自动内存管理的语言/平台容易发生错误。 典型的问题包括悬挂指针问题,一个指针引用了一个已经被回收的内存地址,导致程序的运行完全不可知。 另一个...

    Java GC 专题

    在Java应用程序中,最常见的两个内存问题为Java 停止-世界(Stop-the-World, STW)垃圾收集和Java内存泄漏。停止-世界垃圾收集是指JVM为了回收内存而暂停所有应用程序线程的大型垃圾收集活动。这是Java虚拟机的一个...

    Java的内存管理机制分析

    #### 一、Java内存区域划分 Java的内存管理机制将内存分为以下几个区域: 1. **栈(Stack)**: - 存储局部变量(如基本类型的变量和对象的引用)。 - 每个线程拥有一个独立的栈。 - 栈内存中的数据在方法执行...

    成为JavaGC专家PartII-如何监控Java垃圾回收

    日志包含了每次GC事件的时间、持续时间、内存区域的变化等信息。工具如`MAT (Memory Analyzer Tool)`和`GCPROFILES`可以帮助解析这些日志,找出可能导致性能问题的模式。 3. **GC策略与调优**:Java提供了多种GC...

    深入理解Java 虚拟机内存模型.rar

    Java虚拟机(JVM)内存模型是Java编程语言的核心组成部分,它定义了程序运行时的数据区域和内存管理方式。深入理解这一模型对于优化Java应用程序性能、避免内存泄漏以及理解线程安全至关重要。以下是对Java虚拟机...

    Java虚拟机内存管理总结

    如果对象满足这两个条件,这些对象就可以判定为Java中的内存泄漏,这些对象不会被GC所回收,然而它却占用内存。 JVM的内存区域组成 Java把内存分两种:一种是栈内存,另一种是堆内存。在函数中定义的基本类型变量...

    java之内存泄露

    本文将深入探讨Java内存泄露的原因、表现形式以及预防措施。 #### 二、Java内存回收机制 Java的内存管理机制主要依赖于垃圾回收器(Garbage Collection, GC),这是一种自动化的内存管理方式。当对象不再被引用时,...

    java GC手册

    GC java 手册 kindle格式 GC java 手册 kindle格式 GC java 手册 kindle格式

    Java堆栈内存分析笔记

    堆和栈是Java内存管理的两个主要区域,它们各自承担着不同的职责。本笔记将深入探讨这两个区域的工作原理以及如何进行有效的分析。 首先,我们要理解Java内存的两个主要部分:堆(Heap)和栈(Stack)。堆主要用于...

Global site tag (gtag.js) - Google Analytics