`
dmy110
  • 浏览: 923 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
最近访客 更多访客>>
社区版块
存档分类
最新评论

j2se 5.0 hotspot 垃圾回收器的自动选择/优化机制

 
阅读更多

以下内容自sun白皮书1-150020中找到,我自己的整理了一下。


j2se 5.0 hotspot 垃圾回收器的自动选择/优化机制可以分为两个部分,

第一:根据运行的环境选择是进行Serial GC还是Parallel GC,具体为:

2个以上的处理器;2G以上的内存空间。就被认为是服务器环境,默认运行Parallel GC,堆的初始参数为:初始大小为内存的1/64,最大1GB;最大值是内存的1/4,最大1GB。

否则认为是客户端环境,默认运行Serial GC,堆的初始参数为:初始大小为4MB;最大64MB。


第二:对于Parallel GC,通过自动调节堆大小等其他参数,来满足用户设定的特殊需求,具体为:

1.垃圾回收最大暂停时间:

命令为-XX:MaxGCPauseMillis=n。JVM会努力使得暂停时间小于n ms,比如不断减少堆的大小来减少暂停时间。有可能会降低JVM的整个运行效率。这个参数无初始值。

2.运行效率:

命令为-XX:GCTimeRatio=n。JVM会尽力使得垃圾回收的时间:整个运行时间<1/(1+n)。比如可能会增加堆的大小。默认值为1%。

当以上两个目标都达到的情况下,JVM会尽力减小堆的大小。

JVM会优先满足最大暂停时间的目标。

分享到:
评论

相关推荐

    官方HotSpot内存管理文档

    文档接下来介绍J2SE 5.0 HotSpot JVM中的垃圾收集器,包括垃圾收集器的类型、快速分配、串行收集器、并行收集器、并行压缩收集器和并发标记-清除(CMS)收集器。此外,还探讨了自动选择收集器、堆大小和虚拟机的行为...

    JVM历史发展和内存回收笔记

    Java虚拟机(JVM)是Java程序运行的基础,它的...开发者应根据应用的需求选择合适的JVM版本和垃圾回收策略,以实现最佳的系统性能。通过持续学习和实践,开发者可以更好地掌握JVM的奥秘,提升软件开发和维护的质量。

    J2SE6.0中文版.rar

    - **HotSpot虚拟机**:J2SE 6.0中的HotSpot VM在垃圾回收、编译优化等方面都有显著提升,提高了整体运行效率。 - **内存管理**:内存分配和回收速度加快,减少了内存碎片,提高了系统性能。 4. **部署和安全** -...

    JVM内存管理白皮书[借鉴].pdf

    7. J2SE 5.0 HotSpot JVM中的垃圾收集器: - Hotspot Generations:HotSpot JVM的堆通常分为新生代(Eden、Survivor)、老年代(Tenured Generation)。 - 垃圾收集类型:包括串行收集器、并行收集器、并行压缩...

    java内存管理白皮书

    HotSpot JVM提供了自动选择收集器和调整堆大小的功能,同时,通过行为调优可以进一步优化性能。例如,对于并行收集器,可以调整线程数量以达到最佳效果。 ### 工具与评估 为了评估垃圾回收的性能,HotSpot JVM提供...

    JVM基础_菜鸟_加水印.pdf

    Java使用自动垃圾收集机制来回收不再使用的对象所占用的内存,以避免内存泄漏。垃圾收集器根据不同的策略和算法,如分代收集、标记-清除、复制、标记-整理等,来有效地管理和回收内存。 总的来说,JVM是Java生态...

    JAVA虚拟机的内存管理

    HotSpot JVM引入了一项新技术——**工效学(ergonomics)**,能够在不同的平台上自动选择合适的内存收集器类型、堆大小及工作模式(客户端或服务器),并根据用户期望的目标自动调整垃圾收集的参数。 #### 六、内存...

    JVM基础JVM基础JVM基础

    ### JVM基础知识详解 #### HotSpot简介 HotSpot作为Oracle(原属SUN)的主要Java虚拟机实现,...HotSpot JVM提供了多种不同的垃圾回收器选项,可以根据应用的具体需求选择合适的垃圾回收策略,以达到最优的性能表现。

    java和java虚拟机发展史思维导图

    2004年,Java SE 5.0(也称为Java 1.5)发布,引入了泛型、枚举、自动装箱/拆箱等语言增强,以及增强的类型安全性和编译器优化。同时,JVM的垃圾回收(Garbage Collection, GC)进行了改进,提高了内存管理效率。 ...

    java课件

    - **简单性**:具有类似于C++的语法结构,但去除了复杂的指针操作,并内置垃圾回收机制简化内存管理。 - **分布性**:Java设计之初就考虑到了网络环境下的应用,支持网络透明性。 - **安全性**:不支持指针操作,...

Global site tag (gtag.js) - Google Analytics