1、自带的jconsole工具。

(1)假设是从命令行启动,使 JDK 在 PATH 上,执行 jconsole 就可以。

(2)假设从 GUI shell 启动,找到 JDK 安装路径,打开 bin 目录,双击 jconsole

(3)当分析工具弹出时(取决于正在执行的 Java 版本号以及正在执行的 Java 程序数量),可能会出现一个对话框,要求输入一个进程的 URL 来连接,

也可能列出很多不同     的本地 Java 进程(有时包括 JConsole 进程本身)来连接。

參照http://jiajun.iteye.com/blog/810150

2、自带的jmap工具

jmap 是一个能够输出全部内存中对象的工具,甚至能够将VM 中的heap,以二进制输出成文本。用法 jmap -histo pid。假设连用 SHELL jmap -histo pid>a.log能够将其保存到文本中去(windows下也能够使用),在一段时间后,使用文本对照工具,能够对照出GC回收了哪些对象。

(1)windows环境DOS查询port和PID号:TaskList/svc

        (2)用netstat -ano命令,列出全部port相应的PID

3、mat

a、产生dump文件

一个进程相应一个.hprof文件,

      (1)设置jvm的參数:-XX:+HeapDumpOnOutOfMemoryError生成的java_pid7888.hprof文件位于当前project文件夹下;

      (2)通过jmap -dump:format=b,file=HeapDump.bin <pid>

(3)通过jconsole生成

选择 Mbean -> com.sun.management -> HotSpotDiagnos -> Operations -> dumpHeap

在參数p0中填写保存dmp文件的路径,比如f:/my.hprof,
文件的后缀名要为hprof。

点击dumpHeapbutton生成dump文件。

b、安装mat打开.hprof文件进行分析

java内存分析总结的更多相关文章

  1. Java内存分析--栈--堆

    Java内存分析--栈--堆 JVM的内存分析: 1.栈内存 1.连续的存储空间,遵循后进先出的原则. 2.每个线程包含一个栈区,栈区只保存基础数据类型的对象和自定义对象的引用. 3.每个栈中的数据都 ...

  2. Java内存分析简单介绍

    原创:转载需注明原创地址 https://www.cnblogs.com/fanerwei222/p/11904422.html Java内存分析简单介绍: 1. # 设置内存溢出时自动生成堆内存快照 ...

  3. 13 数组 Java内存分析 三种初始化

    Java内存分析 三种初始化 静态初始化 //静态初始化 创建+赋值 int[] a = {1,2,3}; Man[] mans = {new Man(1,1),new Man(2,2)}; 动态初始 ...

  4. [转载]JAVA内存分析——栈、堆、方法区 程序执行变化过程

    面向对象的内存分析 参考:http://www.sxt.cn/Java_jQuery_in_action/object-oriented.html :尚学堂JAVA300集-064内存分析详解_栈_堆 ...

  5. Java内存分析1 - 从两个程序说起

    这次看一些关于JVM内存分析的内容. 两个程序 程序一 首先来看两个程序,这里是程序一:JVMStackTest,看下代码: package com.zhyea.robin.jvm; public c ...

  6. Java内存分析工具MAT

    MAT是一个强大的内存分析工具,可以快捷.有效地帮助我们找到内存泄露,减少内存消耗分析工具.内存中堆的使用情况是应用性能监测的重点,而对于堆的快照,可以dump出来进一步分析,总的来说,一般我们对于堆 ...

  7. Java 内存分析之mat安装

    有三款内存分析的工具 免费 VisualVM MAT 下载地址https://www.eclipse.org/mat/ mac 下面 under the current working directo ...

  8. 菜鸟学Java(二十三)——Java内存分析

    我们常说的Java内存主要分为四大块(寄存器不在考虑之内,我们无法用代码来操控它):stack(栈).heap(堆).data segment(数据区).code segment(代码区).它们的主要 ...

  9. java 内存分析之static

    源码: 内存分析: 源码: 静态方法:   用static 声明的方法为静态方法,在调用该方法时,不会将对象的引用传递给它,所以在static 方法中不可访问非static 的成员.   可以通过对象 ...

  10. java 内存分析之this

    package Demo; /** * this 的值是当前对象的引用 * @author Aaron * */ public class Boy { private int age; public ...

随机推荐

  1. UIView详解2

    第三.Configuring the Event-Related Behavior 1.  userInteractionEnabled  property A Boolean value that ...

  2. tomcat启动Flash退出错误不能被视为解决该错误信息

    tomcat 当有错误 启动startup.bat闪存在退出解决方案 打开 startup.bat 文件 最后 该start 阅读run watermark/2/text/aHR0cDovL2Jsb2 ...

  3. Vs2012于Linux应用程序开发(4):公共财产的定义

    在嵌入式开发流程.有些参数基本上不改变,比如编译主机IP,username,password等参数.我们用VS提供的属性管理器来保存这些參数. 打开属性管理器: watermark/2/text/aH ...

  4. 在android创建bitmap避免低记忆法

    <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="ht ...

  5. ecshop网站建设手机版wap版出现lib.debug.php on line 303

    首先我们可以看到页面中提示\includes\lib.debug.php on line 303这样的错误,那么我们首先应该找到这个文件的低303行.代码是: $pa = &new Print ...

  6. 数据验证validator 与 DWZ

    在进行系统经常使用的数据验证.数据验证可以编写自己的,它也可以用来作为现在.现在,记录这两个库的使用, validator <!DOCTYPE HTML PUBLIC "-//W3C/ ...

  7. Android学习笔记四十Preference使用

    Preference直译为偏好,博友建议翻译为首选项.一些配置数据,一些我们上次点击选择的内容,我们希望在下次应用调起的时候依旧有效,无须用户再一次进行配置或选择.Android提供preferenc ...

  8. QQ旅程server分析01-网关server

    网关server网络进程: s1.连接网关管理器 s2.上报自身信息给网关管理器 s3.从网关管理器获取自己的管理信息 *s4.依照管理信息预分配好须要的资源 s5.网关server打开client监 ...

  9. MVC EF 增 删 改 查

    using System;using System.Collections.Generic;using System.Linq;using System.Web;//using System.Data ...

  10. Replace是替代 Split分割字符串

    Replace是替代 Split分割字符串string[] ReadText = str.Replace("\r\n", "@").Split('@'); Sp ...