随笔分类 - JVM
摘要:1. 运行时常量池和静态变量都存储到了堆中,MetaSpace存储类的元数据,MetaSpace直接申请在本地内存中(Native memory),这样类的元数据分配只受本地内存大小的限制,OOM问题就不存在了。除此之外,还有其他很多好处: 2. 其实,移除永久代的工作从JDK1.7就开始了。JDK
阅读全文
摘要:1. 内存分布: 1). 程序计数器(Program Counter Register)是一块较小的内存空间,它的作用可以看做是当前线程所执行的字节码的行号指示器。线程私有。如果线程正在执行的是一个Java方法,这个计数器记录的是 正在执行的虚拟机字节码指令的地址;如果正在执行的是Natvie方法,
阅读全文
摘要:1.Sun JDK 监控和故障处理工具 1)jps:JVM process Status Tool,显示指定系统内所有的HotSpot虚拟机进程。可以列出正在运行的虚拟机进程,并显示虚拟机执行主类(Main Class,main()函数所在的类) 的名称,以及这些进程的本地虚拟机的唯...
阅读全文
摘要:文章内容摘自:深入理解java虚拟机 第三章 对象已死? 1. 引用计数算法: 给对象中添加一个引用计数器,每当有一个地方引用它时,计数器值就加1;当引用失效时,计数器值就减1;任何时刻计数器为0的对象就是一个不可能再被使用的。 优点:实现简单,判定效率高 缺点:很难解决相互对象间相互循环引用的问题
阅读全文
摘要:1. jconsole 远程连接: JConsole很好用,可以解决很多疑难杂症。但远程连接需要设置一下Java opt才可以使用。以下是步骤: 1). 在java opt下添加如下内容: 如果是无须验证添加 # 指定远程服务的端口 JAVA_OPTS="$JAVA_OPTS -D...
阅读全文
摘要:本文主要参考内容: http://hllvm.group.iteye.com/group/wiki/3053-JVM http://my.oschina.net/xishuixixia/blog/133850 http://my.oschina.net/xishuixixia/blog/132395
阅读全文
摘要:本文转自:http://my.oschina.net/xishuixixia/blog/1338501.为什么会有年轻代 我们先来屡屡,为什么需要把堆分代?不分代不能完成他所做的事情么?其实不分代完全可以,分代的唯一理由就是优化GC性能。你先想想,如果没有分代,那我们所有的对象都在一块,GC的时候...
阅读全文
摘要:本文转自:http://my.oschina.net/xishuixixia/blog/132395常用的调优参数。1.堆大小-Xms和-Xmx用于指定堆大小,我们需要将他们俩设置为一样的值,以避免在GC后重新调整堆的大小。2.年轻代大小-XX:NewSize=?和–XX:MaxNewSize=?,...
阅读全文
摘要:本文转自:http://www.cnblogs.com/chen77716/archive/2010/06/26/2130807.html 最近因项目存在内存泄漏,故进行大规模的JVM性能调优 , 现把经验做一记录。 一、JVM内存模型及垃圾收集算法 1.根据Java虚拟机规范,JVM将内存划分为:
阅读全文
摘要:本文转自:http://www.cnblogs.com/gw811/archive/2012/10/18/2730117.html#undefined 推荐查看原文,原文格式更好一些。 本文引用自:深入理解Java虚拟机的第2章内容 运行时数据区域 Java虚拟机在执行Java程序的过程中会把它所管
阅读全文
摘要:参考引用文章地址: http://hllvm.group.iteye.com/group/wiki/3053-JVMhttp://blog.csdn.net/william001zs/article/details/6749946 推荐文章:http://www.cnblogs.com/gw811/
阅读全文
摘要:classLoader 的用途:不同版本的jar加载;class文件的加密(加密后只有自己的classLoader可以解密) 1. 在如下几种情况下,Java虚拟机将结束生命周期: 1). 执行了System.exit()方法 2). 程序正常执行结束 3). 程序在执行过程中遇到了异常或错误而异常
阅读全文