内存分析工具

内存分析工具

1. 测试工具介绍

1.1测试目的

java内存泄漏是每个Java程序员都会遇到的问题,程序在本地运行一切正常,可是布署到远端就会出现内存无限制的增长,最后系统瘫痪,那么如何最快最好的检测程序的稳定性,防止系统崩盘,

作为Internet最流行的编程语言之一,Java现正非常流行.我们的网络应用程序就主要采用Java语言开发,大体上分为客户端、服务器和数据库三个层次.在进入测试过程中,我们发现有一个程序模块系统内存和CPU资源消耗急剧增加,持续增长到出现java.lang.OutOfMemoryError为止.经过分析Java内存泄漏是破坏系统的主要因素.这里与大家分享我们在开发过程中遇到的Java内存泄漏的检测和处理解决过程.

1.2.window测试工具

 mat

1.3.linux测试工具

 

2.Jconsole

2.1概述:

jconsole是一个用java写的GUI程序,用来监控VM,并可监控远程的VM,非常易用,而且功能非常强。

使用方法:命令行里打 jconsole,选则进程就可以了。 

2.2 使用介绍:

性能分析

下面说说如何分析,如何使用这六个标签

· 概述: Displays overview information about the Java VM and monitored values.

· 内存: 显示内存使用信息

· 线程: 显示线程使用信息

· : 显示类装载信息

· *VM摘要:*显示java VM信息

· MBeans: 显示 MBeans.

 

java

 

Tomcat

 

JConsole中关于内存分区的说明。 

Eden Space (heap): 内存最初从这个线程池分配给大部分对象。 
Survivor Space (heap):用于保存在eden space内存池中经过垃圾回收后没有被回收的对象。 
Tenured Generation (heap):用于保持已经在 survivor space内存池中存在了一段时间的对象。 
Permanent Generation (non-heap): 保存虚拟机自己的静态(refective)数据,例如类(class)和方法(method)对象。Java虚拟机共享这些类数据。这个区域被分割为只读的和只写的, 
Code Cache (non-heap):HotSpot Java虚拟机包括一个用于编译和保存本地代码(native code)的内存,叫做代码缓存区code cache 

GC的算法和参数对性能有显著的影响,注意垃圾回收次数、时间、以及partial GC和full GC,调整你所使用的不同GC和以及各个GC下的参数,然后在内存视图下观察,以得到好的性能。


关于GC,可以参考:http://www.oracle.com/technetwork/java/gc-tuning-5-138395.html

 

2.3JVM调优

2.31JVM调优之JSTACK找出最耗CPU的线程并定位代码

概述:

jstack可以定位到线程堆栈,根据堆栈信息我们可以定位到具体代码,所以它在JVM性能调优中使用得非常多。下面我们来一个实例找出某个Java进程中最耗费CPUJava线程并定位堆栈信息,用到的命令有pstopprintfjstackgrep

3.VisualVM进行性能分析

3.1.概述

VisualVM 是一款免费的,集成了多个 JDK 命令行工具的可视化工具,它能为您提供强大的分析能力,对 Java 应用程序做性能分析和调优。这些功能包括生成和分析海量数据、跟踪内存泄漏、监控垃圾回收器、执行内存和 CPU 分析,同时它还支持在 MBeans 上进行浏览和操作。本文主要介绍如何使用 VisualVM 进行性能分析及调优。

1.安装

tools->plugin->Available Plugin

注意1.5以后自动就有

3.2.启动

在窗口命令中输入:jvisualvm命令Enter键进入。  (Java Virtual Machine)

 

3.3性能分析

 


 



 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值