Java内存管理
iteye_5555
这个作者很懒,什么都没留下…
展开
-
Java内存管理基础篇 - Java内存分配
1.简介 现摘录一段Java5内存管理白皮书中的一段话: One strength of the Java™ 2 Platform, Standard Edition (J2SE™) is that it performs automatic memorymanagement, thereby shielding the developer from the comple...2010-03-04 22:19:17 · 88 阅读 · 0 评论 -
Garbage First - Card Table
之前一直以为只是在Garbage First垃圾回收器中,有Card Table,终于在这篇文章中有些提示,让我对Card Table的作用有了清晰的认识,对Garbage First基本上有所了解了,应该可以进行总结了。。。。。。 http://vrlinux.com/wenzhangjingxuan/20101115/79907_2.htmlhttp://www.blogjava....原创 2011-05-12 17:36:25 · 86 阅读 · 0 评论 -
Red5 0.7和0.9 版本配置远程JConsole监控
JConsole可以帮助你监控虚拟机的状态,垃圾回收的时间,调整JVM的性能有非常直观的作用,JConsole还可以帮助你查找死锁,内存溢出等问题提供数据上的支持 1.Red5 0.7版本:Red 5 0.7版本配置远程监控比较简单,只要修改red5.sh就可以了我的配置如下:#!/bin/bashfor JAVA in "$JAVA_HOME/bin/java" "/usr/...原创 2010-12-12 16:23:37 · 103 阅读 · 0 评论 -
Java内存Dump文件查看和分析工具介绍
为了查red5-0.7.0的内存泄露问题,由于dump文件太大,用JDK自带的工具JHat,加载不进来,Jhat比较垃圾,用到了两个工具: 1.IBM Memory Analyzer1)下载地址:https://www6.software.ibm.com/sdfdl/1v2/regs2/awadmin/heapanalyzer/Xa.2/Xb.NoLhAb4A5Mgi2gFYi...2010-12-06 16:51:30 · 1954 阅读 · 0 评论 -
深入垃圾收集器与内存分配策略
Java与C++之间有一堵由内存动态分配和垃圾收集技术所围成的高墙,墙外面的人想进去,墙里面的人却想出来。概述: 说起垃圾收集(Garbage Collection,下文简称GC),大部分人都把这项技术当做Java语言的伴生产物。事实上GC的历史远远比Java来得久远,在1960年诞生于MIT的Lisp是第一门真正使用内存动态分配和垃圾收集技术的语言。当Lisp还在胚胎...原创 2010-11-05 15:45:21 · 108 阅读 · 0 评论 -
实战OutOfMemoryError(转)
实战OutOfMemoryError上述区域中,除了程序计数器,其他在VM Spec中都描述了产生OutOfMemoryError(下称OOM)的情形,那我们就实战模拟一下,通过几段简单的代码,令对应的区域产生OOM异常以便加深认识,同时初步介绍一些与内存相关的虚拟机参数。下文的代码都是基于Sun Hotspot虚拟机1.6版的实现,...原创 2010-11-05 15:41:47 · 125 阅读 · 0 评论 -
JVM 运行时区域划分(转载)
VM运行时数据区域JVM执行Java程序的过程中,会使用到各种数据区域,这些区域有各自的用途、创建和销毁时间。根据《Java虚拟机规范(第二版)》(下文称VM Spec)的规定,JVM包括下列几个运行时数据区域: 1.程序计数器(Program Counter Register): 每一个Java...原创 2010-11-05 15:39:32 · 79 阅读 · 0 评论 -
使用jconsole远程监控linux下tomcat使用情况
启动tomcat/bin/startup.sh中增加一下变量:CATALINA_OPTS="-Djava.rmi.server.hostname=192.168.1.69 \ -Dcom.sun.management.jmxremote \ -Dcom.sun.management.jm...原创 2010-10-26 09:11:45 · 80 阅读 · 0 评论 -
Eclipse经常出现OutOfMemory错误,如何解决
今天有个同事问我一个问题,他的Eclipse经常出现OutOfMemoryError,从原理上说,有两种原因会导致客户机的Eclipse内存溢出: 1.Ecplise因为是ide,涉及大量的class的重新build,每次build,classloader会重新加载此class,而老的class,没有被卸载,同时JVM不会垃圾回收此class(据说是因为classloader本身有内存泄露...2010-04-15 16:59:08 · 1096 阅读 · 0 评论 -
Java内存泄露示例代码总汇
Java尽管采用自动的内存管理方式,但是仍然存在泄露的可能,我们知道JVM认为对象没有引用时,会把这个对象视为垃圾。Java内存泄露就存在于,这个对象实际上已经不再需要,但是仍然存在引用,此时就会产生内存泄露。 其实java导致内存泄露的原因很明确:长生命周期的对象持有短生命周期对象的引用就很可能发生内存泄露,尽管短生命周期对象已经不再需要,但是因为长生命周期对象持有它的引用而导致...2010-04-09 13:57:25 · 169 阅读 · 0 评论 -
HotSpot VM - OutOfMemory Error 总汇
OutOfMemory Error表明Java 堆没有足够的内存去装载对象。垃圾回收器不能回收足够的空间去容纳一个新的对象,与此同时,堆空间也无法再进行扩展。 当OutOfMemoryError抛出,栈会打印出信息。OutOfMemoryError也可能是在一个native的内存分配不能满足,由native库抛出,例如,交换空间比较小时,native 内存分配时就会抛出这种错误。 ...2010-04-06 16:02:38 · 114 阅读 · 0 评论 -
Java内存管理-Permanent Space
VM 的Permanent generation space,实际上就是方法区,存储了下面两种类型的数据: 1.Class的节本信息Package NameSuper class package nameClass or interfaceType modifiersSuper inferface package name 2.其它信息The con...2010-03-10 13:21:39 · 128 阅读 · 0 评论 -
JVM -Server -Client 模式
JVM -Server 与 -Client启动,最主要的差别在于:-Server启动时,速度较慢,但是一旦运行起来后,性能将会有很大的提升。 JVM如果不显式指定是-Server还是-Client模式,JVM能够根据下列原则进行自动判断(适用于Java5版本或者Java以上版本): For J2SE 5.0, the definition of a server-class...2010-03-10 09:39:12 · 58 阅读 · 0 评论 -
Java内存管理-监控工具篇
1.JConsole Jconsole,Java Monitoring and Management Console。java监控和管理控制台,从java5开始,在JDK中提供。用于对JVM中内存,线程、类和虚拟机的运行情况等的监控。提供了本地监控和远程监控两种功能。 2.jps [root@host bin]# ./jps175...2010-03-09 22:31:21 · 280 阅读 · 0 评论 -
Java 5 版本以上(SUN JVM)GC参数化调整大全
今天终于有所斩获,发现了Sun Hotspot JVM GC最全的参数调整列表: http://blogs.sun.com/watt/resource/jvm-options-list.htmlhttp://www.cnblogs.com/totti19841106/archive/2009/01/12/1374274.html 有关JVM默认值的参考资料如下:https:...2010-03-08 16:37:15 · 131 阅读 · 0 评论 -
Java内存管理基础篇 - Java内存回收-常见的垃圾回收策略
Java的内存使用完之后,是通过JVM的GC进行回收的。1 概述 垃圾收集的目的在于清除不再使用的对象。gc通过确定对象是否被活动对象引用来确定是否收集该对象。gc首先要判断该对象是否是时候可以收集。两种常用的方法是引用计数和对象引用遍历。 1.1引用计数(Reference Counting) 通过引用的次数来判断对象是否需要被回收。因为在循环引用...2010-03-08 16:33:29 · 64 阅读 · 0 评论 -
JVM四种对象引用类型
JVM 中将对象的引用分为了四种类型,不同的对象引用类型会造成GC 采用不同的方法进行回收:1.强引用默认情况下,对象采用的均为强引用,例如:A a=null;public void execute(){a=new A();,// 其他代码}只有当execute 所在的这个对象的实例没有其他对象引用,GC 时才会被回收。2.软引用(Soft Refe...原创 2011-05-17 16:27:28 · 131 阅读 · 0 评论