`
bigbigdata
  • 浏览: 2768 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
最近访客 更多访客>>
社区版块
存档分类
最新评论

JavaGC 算法

    博客分类:
  • JVM
阅读更多
Java GC 应用了“引用计数算法没"?运行下面代码就知道了:
public class RefernceCountingGC {

	public Object instance = null;
	private static final int _3MB = 1024 * 1024 * 3;

	private byte[] useSpace = new byte[10 * _3MB];

	/**
	 * VM Args:-verbose:gc -XX:+PrintGCDetails -XX:+PrintGCTimeStamps
	 * 
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		RefernceCountingGC ins1 = new RefernceCountingGC();
		RefernceCountingGC ins2 = new RefernceCountingGC();
		ins1.instance = ins2;
		ins2.instance = ins1;
		
		ins1 = null;
		ins2 = null;
		// 进行GC
		System.gc();
	}
}

运行结果
[GC [PSYoungGen: 31374K->584K(38080K)] 62094K->31304K(125056K), 0.0009580 secs] [Times: user=0.00 sys=0.00, real=0.00 secs] 
[Full GC (System) [PSYoungGen: 584K->0K(38080K)] [ParOldGen: 30720K->474K(86976K)] 31304K->474K(125056K) [PSPermGen: 2550K->2549K(21248K)], 0.0046570 secs] [Times: user=0.01 sys=0.00, real=0.00 secs] 
Heap
 PSYoungGen      total 38080K, used 1962K [0x00000007d58b0000, 0x00000007d8320000, 0x0000000800000000)
  eden space 32704K, 6% used [0x00000007d58b0000,0x00000007d5a9aa28,0x00000007d78a0000)
  from space 5376K, 0% used [0x00000007d78a0000,0x00000007d78a0000,0x00000007d7de0000)
  to   space 5376K, 0% used [0x00000007d7de0000,0x00000007d7de0000,0x00000007d8320000)
 ParOldGen       total 86976K, used 474K [0x0000000780a00000, 0x0000000785ef0000, 0x00000007d58b0000)
  object space 86976K, 0% used [0x0000000780a00000,0x0000000780a769b0,0x0000000785ef0000)
 PSPermGen       total 21248K, used 2559K [0x000000077b800000, 0x000000077ccc0000, 0x0000000780a00000)
  object space 21248K, 12% used [0x000000077b800000,0x000000077ba7fe18,0x000000077ccc0000)




很明显:31304K->474K(125056K) 已经回收了,java GC 没有用“引用计数算法”,而是用了跟搜索算法!
分享到:
评论

相关推荐

    GC算法与种类

    java,GC,算法,可触及性,stop-the-world是一篇描述GC工作的文章

    深入JVM内核—原理、诊断与优化视频教程-4.GC算法与种类

    在Java世界中,JVM(Java虚拟机)是运行所有Java应用程序的核心,它负责解析字节码、管理内存以及执行线程。...通过实践和研究GC算法及种类,开发者能更有效地管理内存,使Java应用程序运行更加高效。

    JVM调优,GC算法汇总

    了解并熟练掌握这些GC算法和JVM调优技巧,对于解决性能问题、优化Java应用的运行效率至关重要,同时也是面试中经常被问到的话题。通过实践和理解,开发者可以更好地理解和控制JVM的行为,从而编写出更高效、更稳定的...

    Java_GC垃圾回收调优指南

    ### Java GC垃圾回收调优指南 #### 概述 在Java开发过程中,垃圾回收(Garbage Collection, GC)是管理内存资源的关键技术之一。合理的GC配置可以显著提高应用程序的性能和稳定性。本指南旨在帮助开发者深入理解...

    GC算法和收集器.pdf

    本文将详细探讨GC算法、判断对象回收条件、垃圾收集器的工作原理及其调优步骤和常用参数。 首先,GC需要判断哪些对象可以被回收。在JVM中,主要有两种算法用来判断对象的生死:引用计数法和可达性分析算法。引用...

    java基础学习JVM中GC的算法

    GC算法是JVM中的一种核心机制,它对Java程序的执行效率和内存使用情况产生了深远的影响。 在JVM中,GC算法可以分为两大类:Minor GC和Major GC。Minor GC是对年轻代(Young Generation)的垃圾回收,而Major GC是对...

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

    增量式GC的具体实现算法是Train GC算法,它通过动态调整对象的分组,使得GC可以优先处理那些较旧且较少访问的对象,从而提高回收效率并减少程序暂停时间。 #### 四、分代收集 **4.1 分代理论背景** 分代收集...

    Java GC 专题

    另外,设置合适的堆大小和使用适当的GC算法也能显著提升系统性能。 Java提供了一些工具来帮助开发者分析和调优GC,如VisualVM、JConsole、JMX和JFR(Java Flight Recorder)。这些工具可以显示GC活动的实时信息,...

    成为JavaGC专家(4)

    在第一篇文章成为JavaGC专家PartI—深入浅出Java垃圾回收机制中我们学习了不同GC算法的执行过程,GC如何工作,新生代及老年代的基本概念,在JDK7中你应该了解的5种GC类型以及他们的性能如何。在第二篇文章成为JavaGC...

    Java GC的副本.pptx

    【Java GC机制详解】 Java垃圾回收(Garbage Collection, GC)是Java虚拟机(JVM)的核心特性之一,它负责自动管理程序运行时的内存,有效地避免了内存泄露和溢出的问题。Java GC机制主要涉及以下几个关键方面: 1...

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

    3. **GC策略与调优**:Java提供了多种GC算法,如Serial、Parallel、Concurrent Mark Sweep (CMS) 和 Garbage First (G1)。每种策略都有其适用场景和优缺点。例如,G1适合大内存、低延迟的应用,而CMS则在内存较小、...

    Java Garbage Collection 与各种GC算法.zip

    Java是一种高性能、跨平台的面向对象编程语言。它由Sun Microsystems(现在是Oracle Corporation)的James Gosling等人在1995年推出,被设计为一种简单、健壮、可移植、多线程、动态的语言。Java的主要特点和优势...

    JavaGC专家指南.pdf

    Java虚拟机(JVM)是运行Java字节码的虚拟机进程。它负责在不同操作系统上...以上就是对JavaGC专家指南中提到的知识点的一个全面解析,涵盖了从虚拟机的基本概念到内存管理,再到垃圾回收和性能调优的各个重要方面。

    Java垃圾回收GC机制

    不同的GC算法有其优缺,选择合适的GC算法可以提高Java程序的性能和稳定性。 Java垃圾回收GC机制是Java虚拟机中的一种自动内存管理机制,它可以提高Java程序的开发效率和稳定性。GC机制的实现基于分代收集算法,可以...

    Java虚拟机详解04----GC算法和种类【重要】 - 千古壹号 - 博客园.html

    Java虚拟机详解04----GC算法和种类【重要】,有助于更深入理解记忆,文字配图片,10分钟让你记住gc工作机制。

    java经典算法例子

    在Java编程中,算法是解决问题的核心工具,它们能够有效地处理数据并解决各种计算问题。下面我们将深入探讨几个与Java相关的算法例子,包括求最大公约数、垃圾回收机制、单例模式的实现、寻找数组中重复的数字以及...

Global site tag (gtag.js) - Google Analytics