`
jhj823900
  • 浏览: 16278 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
文章分类
社区版块
存档分类
最新评论

jvm垃圾收集相关的一些链接

阅读更多

   最近开始研究jvm垃圾收集相关训

   1. Java Tuning White Paper

      http://java.sun.com/performance/reference/whitepapers/tuning.html

   2. Tuning Garbage Collection with the 5.0 Java[tm] Virtual Machine

     http://java.sun.com/docs/hotspot/gc5.0/gc_tuning_5.html

   3. Memory Management in the Java HotSpot™ Virtual Machine

    d:/x学习资料/memorymanagement_whitepaper[1].pdf

   4. cms gc实践总结

     http://www.iteye.com/topic/473874

   5.jvm垃圾收集算法简介

     http://lz999.iteye.com/blog/304986

   6.Java 理论与实践: 垃圾收集简史

     http://www.ibm.com/developerworks/cn/java/j-jtp10283/

   7.HotSpot VM 的代划分

     http://www.iteye.com/topic/528721

   8. java调优相关

      http://www.javaperformancetuning.com/news/news113.shtml

    

 

学习笔记:

   垃圾收集的职责:

     分配内存

     保证任何被引用的对象保留在内存,回收掉不再被引用的对象的内存

 

   对象在被引用时被称为活着(live),对象不再被引用被称为死了(dead)或者垃圾

   这个查找并释放已经使用了的对象的空间的过程,称之为垃圾回收

   垃圾收集解决了许多但并不是所有的内存分配问题,例如你可以无限制的创建对象并继续引用它们直到无可用内存。垃圾收集也是一个复杂的任务,需要时间和自己的资源

   这个精确的算法用于垃圾收集器组织内存以及内存的分配和释放,对程序员来说是透明的。通常分配一个大的内存池来作为堆。

   垃圾收集器触发垃圾收集的时间,通常为整个堆或者堆的一部分被填充起来或者达到一定的占用百分比。

   对满足期望的分配请求,这涉及到从堆里找到一个确定大小的未使用的内存块,对于大多数的动态内存分配算法的主要问题是要避免碎片

   可取的垃圾收集器特点

   一个垃圾收集器必须安全和全面的,那就是活着的数据不应该被错误的释放,在当少数的收集周期里无人认领的垃圾不应该继续被保留。

   同样垃圾收集器高效的工作而不导致应用不工作的过长暂停是令人满意的,然而与大多数计算机相关的系统经常需要权衡时间,空间和频率。例如:如果堆的空间很小,垃圾收集会很快,但是这堆会被迅速填满,因此需要频繁的垃圾收集。相反,一个大的堆需要较长的时间才会被填满,因此垃圾收集不如之前频繁,但可能一次收集会花更多时间。

  另一个不错的垃圾收集器特点是碎片限制,当内存里的垃圾对象被释放时,这可用的空间可能出现在各个区域的小块,这样有可能任何一个连续的区域能都不足够分配一个大对象,一个避免碎片的方法是压紧(compaction).

   可伸缩性同样重要,多线程的应用在多处理器的系统里,分配内存不应该成为可伸缩性的瓶颈,同样,垃圾收集也不应该有这样的瓶颈。

 

   设计选择:

    当设计或者选择一个垃圾收集算法的时候会有许多的选择

 

     串行对并行:

       对于串行垃圾收集,在一个时间点里只仅会做一件事,例如,即使在多个可用CPU的情况,也只有一个用来执行垃圾收集。当使用并行收集的时候,这个垃圾收集的任务被分成多个部分,那些子部分被同时的执行分别对应不同的CPU,这些同时操作可以使得垃圾收集能更快的完成,需要牺牲一些额外的复杂性和可能的碎片。

     并发对停止整个世界(Stop-the-world)

     当停止整个世界垃圾收集被执行的时候,在这个垃圾收集期间,应用程序是处于完全暂停的状态的,或者一个或多个垃圾收集任务被并发的执行,与应用程序同时的进行。通常,并发垃圾收集器能同时做很多它自己的工作,但是偶尔可能也会不得不有一些小许的stop-the-world的暂停。stop-the-world垃圾收集要比并发收集简单,因为堆被冻结并且对象在收集期间并没有改变。它的缺点是造成应用的暂停结果是不能被接受的

分享到:
评论

相关推荐

    JVM内存管理白皮书

    它不仅向读者提供了JVM垃圾收集机制的理论知识,还提供了实操指导,比如如何选择和调优垃圾收集器以及使用哪些工具来评估垃圾收集器性能。对于开发人员来说,掌握这些知识可以帮助他们编写出性能更优、稳定性更高的...

    jvm内存模型以及垃圾回收机制.pptx

    - **垃圾收集器**:如Serial、ParNew、Parallel Scavenge、CMS、G1等,各有特点,适用于不同场景。 理解JVM内存模型和垃圾回收机制对于优化Java应用性能、避免内存泄漏和有效利用资源至关重要。开发者应根据实际...

    JVM初探内存分配GC原理与垃圾收集器共16页.pdf.z

    深入理解JVM内存分配、垃圾收集(Garbage Collection, GC)原理以及垃圾收集器的工作方式对于优化程序性能至关重要。 首先,我们要了解JVM内存结构。在Java中,内存主要分为以下几个区域: 1. **堆内存(Heap)**...

    推荐一些JVM原理,JVM调优,JVM内存模型,JAVA并发 电子书1

    1. JVM原理:JVM的工作原理涉及类加载器(ClassLoader)、类文件(ClassFile)、内存管理及垃圾收集机制。类加载器负责将.class文件加载到内存中,为程序的运行准备数据结构。内存管理涉及JVM内存区域,包括堆、栈、...

    JVM

    JVM是Java平台的一部分,负责执行字节码,管理内存,垃圾收集,以及提供硬件和操作系统之间的抽象。在深入探讨JVM之前,我们先来理解一下什么是字节码。Java源代码编译后生成的是.class文件,这些文件包含的是Java...

    jvm思维导图 .pdf

    常见的JVM垃圾收集器包括: - Serial收集器:单线程,适合小型应用。 - ParNew收集器:Serial的多线程版本,常与CMS配合。 - Parallel Scavenge:关注吞吐量,适用于服务器环境。 - Serial Old、Parallel Old:...

    Jvm性能优化-JVM内存结构原理分析03

    Jvm中有多种垃圾收集器,如串行(Serial)垃圾收集器、并行(Parallel)垃圾收集器、并发(Concurrent)垃圾收集器等。其中,串行垃圾收集器是Jvm默认的垃圾收集器,它使用单线程来执行垃圾回收。并行垃圾收集器使用...

    JVM详解与学习

    ### JVM详解与学习 #### Java相关 ##### 1.1 Java定义 Java 是一种广泛使用的高级编程语言,具有面向...以上内容覆盖了JVM的基础知识、内存管理和垃圾收集等方面,对于深入理解Java应用程序的运行机制非常有帮助。

    jvm 启动过程 JVM 原理

    通过调整JVM参数,我们可以控制堆大小、垃圾收集策略、线程栈大小等,以达到最佳的运行效果。例如,通过-Xms和-Xmx设置堆内存大小,-XX:+UseG1GC选择垃圾收集器等。 总结来说,JVM是Java编程的重要组成部分,它的...

    JVM思维导图.mindnode.zip

    JVM提供了多种内存调优策略,如设置堆大小、新生代和老年代的比例、使用哪种垃圾收集器等,以提高应用性能。例如,CMS(Concurrent Mark Sweep)和G1(Garbage-First)是两种常见的垃圾收集器,它们各有优势,适用于...

    JVM面试题资源

    以下是一些关于JVM的常见面试题和相关知识点: 1. **JVM的组成** - **类装载器(ClassLoader)**:负责加载类文件到JVM内存中,分为 Bootstrap ClassLoader、Extension ClassLoader 和 AppClass ClassLoader。 - **...

    狂神说JVM探究.rar

    - 垃圾收集的目的是自动回收不再使用的对象所占用的内存。 - 分代收集理论:将堆分为新生代(Eden、Survivor)、老年代,不同年代采用不同的GC算法。 - 常见的GC算法有:标记-清除、复制、标记-整理、分代收集等...

    深入理解JVM性能调优和内存模型,垃圾回收,虚拟机原理,经典视频教程

    在性能调优方面,JVM提供了许多可调整的参数,如堆大小、新生代与老年代的比例、垃圾收集器的选择等。这些参数的合理配置可以显著提高应用的运行效率。例如,通过增大堆内存以容纳更多对象,或选择合适的垃圾收集器...

    jvm paper jvm

    本篇文章将深入探讨JVM的各个方面,包括其工作原理、内存模型、垃圾收集以及性能优化。 一、JVM工作原理 Java源代码经过编译器转化为字节码,这些字节码文件以`.class`结尾。JVM在运行时加载这些字节码,然后解释...

    java-jvm虚拟机原理.ppt

    本篇文章将深入探讨JVM的生命周期、体系结构、类加载机制、内存区域以及垃圾收集。 首先,JVM的生命周期与Java程序紧密关联。每当运行一个Java程序时,就会创建一个JVM实例。这个实例在程序执行期间存在,直到程序...

    JVM 监控 调优 工具

    Java虚拟机(JVM)是Java程序运行的基础,它负责解释和执行字节码,管理内存,以及执行垃圾收集(Garbage Collection, GC)。在Java应用程序的开发和运行过程中,了解JVM的工作原理,监控其状态,以及进行性能调优是...

    jvm高级特性与最佳实践

    3. 垃圾回收机制:JVM提供了多种垃圾收集器,如Serial GC、Parallel GC、CMS(Concurrent Mark Sweep)GC、G1(Garbage-First)GC等,用以适应不同场景下的内存管理需求。 4. 线程模型:JVM中的线程是映射到操作...

    浅谈jvm原理

    垃圾回收有多种算法和策略,例如标记-清除算法、复制算法、标记-压缩算法、分代收集算法等。垃圾回收器可以根据不同的场景选择不同的垃圾回收算法和策略,以提高系统的性能。 JVM 是一个复杂的系统,它包括类加载器...

    jvm课程ppt

    JVM的主要功能包括类加载、动态链接、内存管理、代码执行等。了解JVM的基本架构和工作流程对于理解Java程序的运行机制至关重要。 二、类加载机制 JVM的类加载机制包括加载、验证、准备、解析和初始化五个阶段。它...

Global site tag (gtag.js) - Google Analytics