摘要: Java性能调优笔记调优步骤:衡量系统现状、设定调优目标、寻找性能瓶颈、性能调优、衡量是否到达目标(如果未到达目标,需重新寻找性能瓶颈)、性能调优结束。寻找性能瓶颈性能瓶颈的表象:资源消耗过多、外部处理系统的性能不足、资源消耗不多但程序的响应速度却仍达不到要求。资源消耗:CPU、文件IO、网络IO、内存。外部处理系统的性能不足:所调用的其他系统提供的功能或数据库操作的响应速度不够。资源消耗不多但程序的响应速度却仍达不到要求:程序代码运行效率不够高、未充分使用资源、程序结构不合理。CPU消耗分析CPU主要用于中断、内核、用户进程的任务处理,优先级为中断>内核>用户进程。上下文切换:每 阅读全文
posted @ 2014-04-08 14:08 曹刚 阅读(314) 评论(0) 推荐(0)
摘要: JVM系列三:JVM参数设置、分析 不管是YGC还是Full GC,GC过程中都会对导致程序运行中中断,正确的选择不同的GC策略,调整JVM、GC的参数,可以极大的减少由于GC工作,而导致的程序运行中断方面的问题,进而适当的提高Java程序的工作效率。但是调整GC是以个极为复杂的过程,由于各个程序具备不同的特点,如:web和GUI程序就有很大区别(Web可以适当的停顿,但GUI停顿是客户无法接受的),而且由于跑在各个机器上的配置不同(主要cup个数,内存不同),所以使用的GC种类也会不同(如何选择见GC种类及如何选择)。本文将注重介绍JVM、GC的一些重要参数的设置来提高系统的性能。 JVM内 阅读全文
posted @ 2014-04-08 14:04 曹刚 阅读(203) 评论(0) 推荐(0)
摘要: Memory Analyzer Tool 使用手记连接:http://wensong.iteye.com/blog/1986449MATOOMJavaMemory Leak内存溢出 最近一段时间一直在研究热部署,热部署中涉及到一个比较头痛的问题就是查内存泄露(Memory Leak),于是乎在研究热部署的过程中,干的最多的一件事就是查内存泄露。 查内存泄露,最开始尝试用JDK自身的工具去解决这件事,通过jstat和jmap,去发现是否有内存泄露,当判断有内存泄露存在时,试图要去寻找内存泄露的点时,发现单纯使用JDK自身提供的工具没有什么很好的办法,我尝试过Jhat,发现查起来太困难了,后来.. 阅读全文
posted @ 2014-04-08 14:03 曹刚 阅读(174) 评论(0) 推荐(0)
摘要: JAVA内存溢出解析(转)核心提示:原因有很多种,比如: 1.数据量过于庞大;死循环 ;静态变量和静态方法过多;递归;无法确定是否被引用的对象; 2.虚拟机不回收内存(内存泄漏); 说白了就是程序运行要用到的内存大于虚拟机能提供的最大内存就发生内存溢出了。 内存溢出的问题要看业务和系原因有很多种,比如:1.数据量过于庞大;死循环 ;静态变量和静态方法过多;递归;无法确定是否被引用的对象; 2.虚拟机不回收内存(内存泄漏); 说白了就是程序运行要用到的内存大于虚拟机能提供的最大内存就发生内存溢出了。 内存溢出的问题要看业务和系统大小而定,对于某些系统可能内存溢出不常见,但某些系统还是很常见的解决 阅读全文
posted @ 2014-04-08 10:21 曹刚 阅读(212) 评论(0) 推荐(0)
摘要: JProfiler学习笔记一、安装JProfiler 从http://www.ej-technologies.com/下载 5.1.2并申请试用序列号二、主要功能简介1.内存剖析 Memory profilerJProfiler 的内存视图部分可以提供动态的内存使用状况更新视图和显示关于内存分配状况信息的视图。所有的视图都有几个聚集层并且能够显示现有存在的对象和作为垃圾回收的对象。 所有对象 显示类或在状况统计和尺码信息堆上所有对象的包。你可以标记当前值并显示差异值。 记录对象 Record objects 显示类或所有已记录对象的包。你可以标记出当前值并且显示差异值。 分配访问树 Alloc 阅读全文
posted @ 2014-04-08 10:05 曹刚 阅读(245) 评论(0) 推荐(0)