自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 收藏
  • 关注

原创 通过Java/JMX得到full GC次数?

今天有个同事问如何能通过JMX获取到某个Java进程的full GC次数: 引用hi,问个问题,怎们在java中获取到full gc的次数呢? 我现在用jmx的那个得到了gc次数,不过不能细化出来full gc的次数 Java代码 for (final GarbageCollectorMXBean garbageCollector           : Managem...

2011-01-21 11:51:20 530

原创 深入理解JVM

1   Java技术与Java虚拟机 说起Java,人们首先想到的是Java编程语言,然而事实上,Java是一种技术,它由四方面组成: Java编程语言、Java类文件格式、Java虚拟机和Java应用程序接口(Java API)。它们的关系如下图所示:图1   Java四个方面的关系运行期环境代表着Java平台,开发人员编写Java代码(.java文件),然后将之编译成字节码...

2011-01-21 11:50:23 75

原创 JVM调优总结(十二)-参考资料

    能整理出上面一些东西,也是因为站在巨人的肩上。下面是一些参考资料,供大家学习,大家有更好的,可以继续完善:) · Java 理论与实践: 垃圾收集简史 · Java SE 6 HotSpot[tm] Virtual Machine Garbage Collection Tuning · Improving Java Application Performance a...

2011-01-21 11:49:45 70

原创 JVM调优总结(十)-调优方法

JVM调优工具Jconsole,jProfile,VisualVMJconsole : jdk自带,功能简单,但是可以在系统有一定负荷的情况下使用。对垃圾回收算法有很详细的跟踪。详细说明参考这里 JProfiler:商业软件,需要付费。功能强大。详细说明参考这里 VisualVM:JDK自带,功能强大,与JProfiler类似。推荐。 如何调优观察内存释...

2011-01-21 11:49:06 88

原创 JVM调优总结(九)-新一代的垃圾回收算法

垃圾回收的瓶颈    传统分代垃圾回收方式,已经在一定程度上把垃圾回收给应用带来的负担降到了最小,把应用的吞吐量推到了一个极限。但是他无法解决的一个问题,就是Full GC所带来的应用暂停。在一些对实时性要求很高的应用场景下,GC暂停所带来的请求堆积和请求失败是无法接受的。这类应用可能要求请求的返回时间在几百甚至几十毫秒以内,如果分代垃圾回收方式要达到这个指标,只能把最大堆的设置限制在一个相对...

2011-01-21 11:48:28 67

原创 JVM调优总结(八)-典型配置举例2

 常见配置汇总 堆设置  -Xms:初始堆大小  -Xmx:最大堆大小  -XX:NewSize=n:设置年轻代大小  -XX:NewRatio=n:设置年轻代和年老代的比值。如:为3,表示年轻代与年老代比值为1:3,年轻代占整个年轻代年老代和的1/4  -XX:SurvivorRatio=n:年轻代中Eden区与两个Survivor区的比值。注意Survivo...

2011-01-21 11:47:57 85

原创 JVM调优总结(七)-典型配置举例1

 以下配置主要针对分代垃圾回收算法而言。 堆大小设置年轻代的设置很关键JVM中最大堆大小有三方面限制:相关操作系统的数据模型(32-bt还是64-bit)限制;系统的可用虚拟内存限制;系统的可用物理内存限制。32位系统下,一般限制在1.5G~2G;64为操作系统对内存无限制。在Windows Server 2003 系统,3.5G物理内存,JDK5.0下测试,最大可设置为1...

2011-01-21 11:47:26 105

原创 JVM调优总结(六)-分代垃圾回收详述2

分代垃圾回收流程示意  选择合适的垃圾收集算法串行收集器 用单线程处理所有垃圾回收工作,因为无需多线程交互,所以效率比较高。但是,也无法使用多处理器的优势,所以此收集器适合单处理器机器。当然,此收集器也可以用在小数据量(100M左右)情况下的多处理器机器上。可以使用-XX:+UseSerialGC打开。   并行收集器  ...

2011-01-21 11:46:51 94

原创 JVM调优总结(五)-分代垃圾回收详述1

为什么要分代    分代的垃圾回收策略,是基于这样一个事实:不同的对象的生命周期是不一样的。因此,不同生命周期的对象可以采取不同的收集方式,以便提高回收效率。     在Java程序运行的过程中,会产生大量的对象,其中有些对象是与业务信息相关,比如Http请求中的Session对象、线程、Socket连接,这类对象跟业务直接挂钩,因此生命周期比较长。但是还有一些对象,主要是程序运行过程...

2011-01-21 11:46:11 50

原创 JVM调优总结(四)-垃圾回收面临的问题

如何区分垃圾     上面说到的“引用计数”法,通过统计控制生成对象和删除对象时的引用数来判断。垃圾回收程序收集计数为0的对象即可。但是这种方法无法解决循环引用。所以,后来实现的垃圾判断算法中,都是从程序运行的根节点出发,遍历整个对象引用,查找存活的对象。那么在这种方式的实现中,垃圾回收从哪儿开始的呢?即,从哪儿开始查找哪些对象是正在被当前系统使用的。上面分析的堆和栈的区别,其中栈是真正进...

2011-01-21 11:45:07 64

原创 JVM调优总结(三)-基本垃圾回收算法

 可以从不同的的角度去划分垃圾回收算法:按照基本回收策略分引用计数(Reference Counting):比较古老的回收算法。原理是此对象有一个引用,即增加一个计数,删除一个引用则减少一个计数。垃圾回收时,只用收集计数为0的对象。此算法最致命的是无法处理循环引用的问题。 标记-清除(Mark-Sweep):  此算法执行分两阶段。第一阶段从引用根节点开...

2011-01-21 11:44:32 53

原创 JVM内存管理:深入垃圾收集器与内存分配策略

  Java与C++之间有一堵由内存动态分配和垃圾收集技术所围成的高墙,墙外面的人想进去,墙里面的人却想出来。 概述:   说起垃圾收集(Garbage Collection,下文简称GC),大部分人都把这项技术当做Java语言的伴生产物。事实上GC的历史远远比Java来得久远,在1960年诞生于MIT的Lisp是第一门真正使用内存动态分配和垃圾收集技术的语言。当Lisp还在胚胎时期,人们就在思考...

2011-01-21 11:43:51 67

原创 JVM内存管理:深入Java内存区域与OOM

 Java与C++之间有一堵由内存动态分配和垃圾收集技术所围成的高墙,墙外面的人想进去,墙里面的人却想出来。 概述:对于从事C、C++程序开发的开发人员来说,在内存管理领域,他们即是拥有最高权力的皇帝又是执行最基础工作的劳动人民——拥有每一个对象的“所有权”,又担负着每一个对象生命开始到终结的维护责任。 对于Java程序员来说,不需要在为每一个new操作去写配对的del...

2011-01-21 11:43:07 60

原创 java线程安全总结

     最近想将java基础的一些东西都整理整理,写下来,这是对知识的总结,也是一种乐趣。已经拟好了提纲,大概分为这几个主题: java线程安全,java垃圾收集,java并发包详细介绍,java profile和jvm性能调优 。慢慢写吧。本人jameswxx原创文章,转载请注明出处,我费了很多心血,多谢了。关于java线程安全,网上有很多资料,我只想从自己的角度总结对这方面的考虑,有时候写东...

2011-01-21 11:42:01 58

原创 慢慢琢磨JVM——恭喜JavaEye重新开张

1 JVM简介 JVM是我们Javaer的最基本功底了,刚开始学Java的时候,一般都是从“Hello World”开始的,然后会写个复杂点class,然后再找一些开源框架,比如Spring,Hibernate等等,再然后就开发企业级的应用,比如网站、企业内部应用、实时交易系统等等,直到某一天突然发现做的系统咋就这么慢呢,而且时不时还来个内存溢出什么的,今天是交易系统报了StackOverf...

2011-01-21 11:40:27 72

原创 JVM 几个重要的参数

<本文提供的设置仅仅是在高压力, 多CPU, 高内存环境下设置>  最近对JVM的参数重新看了下, 把应用的JVM参数调整了下。  几个重要的参数-server -Xmx3g -Xms3g -XX:MaxPermSize=128m -XX:NewRatio=1  eden/old 的比例-XX:SurvivorRatio=8  s/e的比例 -XX:+UseParallelGC -...

2011-01-21 11:37:52 65

原创 JVM调优总结(二)-一些概念

Java对象的大小    基本数据的类型的大小是固定的,这里就不多说了。对于非基本类型的Java对象,其大小就值得商榷。    在Java中,一个空Object对象的大小是8byte,这个大小只是保存堆中一个没有任何属性的对象的大小。看下面语句:Object ob = new Object();    这样在程序中完成了一个Java对象的生命,但是它所占的空间为:4byte...

2011-01-21 11:36:18 66

原创 JVM调优总结(一)-- 一些概念

转:http://www.iteye.com/wiki/jvm/2858-JVM数据类型    Java虚拟机中,数据类型可以分为两类:基本类型和引用类型。基本类型的变量保存原始值,即:他代表的值就是数值本身;而引用类型的变量保存引用值。“引用值”代表了某个对象的引用,而不是对象本身,对象本身存放在这个引用值所表示的地址的位置。基本类型包括:byte,short,int,long,ch...

2011-01-21 11:31:22 60

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除