
JVM
Snoopy7713
这个作者很懒,什么都没留下…
展开
-
JAVA启动参数大全之一:标准参数
前段时间系统升级时遭遇了OOM,具体解决过程见 遭遇OutOfMemoryError; 为了巩固对于java启动各项参数的认识,决定将所有参数列举出来,并一一解释,以便后查; java启动参数共分为三类; 其一是标准参数(-),所有的JVM实现都必须实现这些参数的功能,而且向后兼容; 其二是非标准参数(-X),默认jvm实现这些参数的功能,但是并不保证所有jvm实现都满足,且不保证向后...原创 2011-10-25 13:37:57 · 129 阅读 · 0 评论 -
JVM调优总结(九)-参考资料
能整理出上面一些东西,也是因为站在巨人的肩上。下面是一些参考资料,供大家学习,大家有更好的,可以继续完善:) · Java 理论与实践: 垃圾收集简史 · Java SE 6 HotSpot[tm] Virtual Machine Garbage Collection Tuning · Improving Java Application Perfor...原创 2012-01-12 07:55:30 · 97 阅读 · 0 评论 -
JVM调优总结(八)-反思
垃圾回收的悖论 所谓“成也萧何败萧何”。Java的垃圾回收确实带来了很多好处,为开发带来了便利。但是在一些高性能、高并发的情况下,垃圾回收确成为了制约Java应 用的瓶颈。目前JDK的垃圾回收算法,始终无法解决垃圾回收时的暂停问题,因为这个暂停严重影响了程序的相应时间,造成拥塞或堆积。这也是后续JDK增加 G1算法的一个重要原因。 当然,上面是从技术角度出发解决垃圾...原创 2012-01-11 08:11:25 · 95 阅读 · 0 评论 -
JVM调优总结(七) - 调优方法
JVM调优工具 Jconsole,jProfile,VisualVM Jconsole : jdk自带,功能简单,但是可以在系统有一定负荷的情况下使用。对垃圾回收算法有很详细的跟踪。详细说明参考这里 JProfiler :商业软件,需要付费。功能强大。详细说明参考这里 VisualVM :JDK自带,功能强大,与JProfiler类似。推...原创 2012-01-11 08:11:11 · 123 阅读 · 0 评论 -
JVM调优总结(六)-新一代的垃圾回收算法
垃圾回收的瓶颈 传统分代垃圾回收方式,已经在一定程度上把垃圾回收给应用带来的负担降到了最小,把应用的吞吐量推到了一个极限。但是他无法解决的一个问题,就是Full GC所带来的应用暂停。在一些对实时性要求很高的应用场景下,GC暂停所带来的请求堆积和请求失败是无法接受的。这类应用可能要求请求的返回时间在几百甚 至几十毫秒以内,如果分代垃圾回收方式要达到这个指标,只能把最大堆的设...原创 2012-01-11 08:10:33 · 90 阅读 · 0 评论 -
JVM调优总结(五)-典型配置举例
以下配置主要针对分代垃圾回收算法而言。 堆大小设置 年轻代的设置很关键 JVM中最大堆大小有三方面限制:相关操作系统的数据模型(32-bt还是64-bit)限制;系统的可用虚拟内存限制;系统的可用物理内存限制。32位系统下,一般限制在1.5G~2G;64为操作系统对内存无限制。在Windows Server 2003 系统,3.5G物理内存,JDK5.0下测试,最大可设置为1478...原创 2012-01-11 08:10:19 · 82 阅读 · 0 评论 -
JVM调优总结(四)-分代垃圾回收详述
为什么要分代 分代的垃圾回收策略,是基于这样一个事实:不同的对象的生命周期是不一样的 。因此,不同生命周期的对象可以采取不同的收集方式,以便提高回收效率。 在Java程序运行的过程中,会产生大量的对象,其中有些对象是与业务信息相关,比如Http请求中的Session对象、线程、Socket连接,这 类对象跟业务直接挂钩,因此生命周期比较长。但是还有一些对象,主要是...原创 2012-01-10 08:33:09 · 94 阅读 · 0 评论 -
JVM调优总结(三)- 垃圾回收面临的问题
如何区分垃圾 上面说到的“引用计数”法,通过统计控制生成对象和删除对象时的引用数来判断。垃圾回收程序收集计数为0的对象即可。但是这种方法无法解决循环引用。所 以,后来实现的垃圾判断算法中,都是从程序运行的根节点出发,遍历整个对象引用,查找存活的对象。那么在这种方式的实现中,垃圾回收从哪儿开始的呢 ? 即,从哪儿开始查找哪些对象是正在被当前系统使用的。上面分析的堆和...原创 2012-01-10 08:31:18 · 85 阅读 · 0 评论 -
JVM调优总结(二)-基本垃圾回收算法
可以从不同的的角度去划分垃圾回收算法: 按照基本回收策略分 引用计数(Reference Counting): 比较古老的回收算法。原理是此对象有一个引用,即增加一个计数,删除一个引用则减少一个计数。垃圾回收时,只用收集计数为0的对象。此算法最致命的是无法处理循环引用的问题。 标记-清除(Mark-Sweep): 此算法执行分两阶段。第一阶段从引用根...原创 2012-01-10 08:28:51 · 91 阅读 · 0 评论 -
JVM调优总结(一):一些概念
写道 Java虚拟机中,数据类型可以分为两类:基本类型和引用类型。基本类型的变量保存原始值,即:他代表的值就是数值本身;而引用类型的变量保存引用值 数据类型 Java虚拟机中,数据类型可以分为两类:基本类型 和引用类型 。基本类型的变量保存原始值,即:他代表的值就是数值本身;而引用类型的变量保存引用值。“引用值”代表了某个对象的引用,而不是对象本身,对象本身存放在这...原创 2012-01-10 08:16:33 · 89 阅读 · 0 评论 -
Eclipse.ini
今天同学问我Eclipse文件夹下有个Eclipse.ini文件,里面各个参数各有什么作用。我仅仅知道里面是设置Eclipse在启动时占用内存的大小还有什么jvm的堆,具体倒不是很清楚。倒网上扫了下,了解了不少,具体如下: -vmargs -Xms128M -Xmx512M -XX:PermSize=64M -XX:MaxPermSize=128M 这里...原创 2012-01-05 11:02:50 · 116 阅读 · 0 评论 -
JAVA启动参数大全之三:非Stable参数
前面我们提到用-XX作为前缀的参数列表在jvm中可能是不健壮的,SUN也不推荐使用,后续可能会在没有通知的情况下就直接取消了;但是由于这些参数中的确有很多是对我们很有用的,比如我们经常会见到的-XX:PermSize、-XX:MaxPermSize等等; 下面我们将就Java HotSpot VM中-XX:的可配置参数列表进行描述; 这些参数可以被松散的聚合成三类: 行为参数(Behavio...原创 2011-10-25 13:41:09 · 89 阅读 · 0 评论 -
JAVA启动参数大全之二:非标准参数
非标准参数又称为扩展参数,其列表如下: -Xint 设置jvm以解释模式运行,所有的字节码将被直接执行,而不会编译成本地码。 -Xbatch 关闭后台代码编译,强制在前台编译,编译完成之后才能进行代码执行; 默认情况下,jvm在后台进行编译,若没有编译完成,则前台运行代码时以解释模式运行。 -Xbootclasspath:bootclasspath 让jvm从指定...原创 2011-10-25 13:38:47 · 98 阅读 · 0 评论 -
JConsole手册
一篇Sun官方网站上介绍JConsole使用的文章 ,前段时间性能测试的时候大概翻译了一下以便学习,今天整理一下发上来,有些地方也不知道怎么翻,就保留了原文,可能还好理解点,呵呵,水平有限,翻的不好,大家多多包涵。 JConsole毕竟是JDK自带的东西,功能虽然没有一些商业软件那么强大,但是稳定性好,在大压力情况下也不会发生什么问题。而且,提供了相对全面的系统监控功能,还是值得一用的。 ...原创 2012-01-13 08:03:52 · 99 阅读 · 0 评论