`
44424742
  • 浏览: 232410 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

内存监控工具

阅读更多

JDK自带VM分析工具jps,jstat,jmap,jconsole

一、概述
SUN 的JDK中的几个工具,非常好用。秉承着有免费,不用商用的原则。以下简单介绍一下这几种工具。(注:本文章下的所有工具都存在JDK5.0以上版本的工具集里,同javac一样,不须特意安装) 。

我一共找到以下四个工具:重点看看jconsole和jmap
1.jps
.:与unix上的ps类似,用来显示本地的java进程,可以查看本地运行着几个java程序,并显示他们的进程号。

2.jstat
.:一个极强的监视VM内存工具。可以用来监视VM内存内的各种堆和非堆的大小及其内存使用量。

3.jmap
.:打印出某个java进程(使用pid)内存内的,所有‘对象’的情况(如:产生那些对象,及其数量)。
4.jconsole
.:一个java GUI监视工具,可以以图表化的形式显示各种数据。并可通过远程连接监视远程的服务器VM。
二、 使用介绍:

1、jps :我想很多人都是用过unix系统里的ps命令,这个命令主要是用来显示当前系统的进程情况,有哪些进程,及其 id。 jps 也是一样,它的作用是显示当前系统的java进程情况,及其id号。我们可以通过它来查看我们到底启动了几个java进程(因为每一个java程序都会独占一个java虚拟机实例),和他们的进程号(为下面几个程序做准备),并可通过opt来查看这些进程的详细启动参数。
使用方法:在当前命令行下打 jps(需要JAVA_HOME,没有的话,到改程序的目录下打) 。
可惜没有linux下的ps好用,名称不好用。但是在第四个工具jconsole的界面里面会有具体JAR包的名称。
/data/jdk1.6.0_06/bin/jps
6360 Resin
6322 WatchdogManager
2466 Jps


2、jstat :对VM内存使用量进行监控。
jstat工具特别强大,有众多的可选项,详细查看堆内各个部分的使用量,以及加载类的数量。使用时,需加上查看进程的进程id,和所选参数。以下详细介绍各个参数的意义。
jstat -class pid:显示加载class的数量,及所占空间等信息。
jstat -compiler pid:显示VM实时编译的数量等信息。
jstat -gc pid:可以显示gc的信息,查看gc的次数,及时间。其中最后五项,分别是young gc的次数,young gc的时间,full gc的次数,full gc的时间,gc的总时间。
jstat -gccapacity:可以显示,VM内存中三代(young,old,perm)对象的使用和占用大小,如:PGCMN显示的是最小perm的内存使用量,PGCMX显示的是perm的内存最大使用量,PGC是当前新生成的perm内存占用量,PC是但前perm内存占用量。其他的可以根据这个类推, OC是old内纯的占用量。
jstat -gcnew pid:new对象的信息。
jstat -gcnewcapacity pid:new对象的信息及其占用量。
jstat -gcold pid:old对象的信息。
jstat -gcoldcapacity pid:old对象的信息及其占用量。
jstat -gcpermcapacity pid: perm对象的信息及其占用量。
jstat -util pid:统计gc信息统计。
jstat -printcompilation pid:当前VM执行的信息。
除了以上一个参数外,还可以同时加上 两个数字,如:jstat -printcompilation 3024 250 6是每250毫秒打印一次,一共打印6次,还可以加上-h3每三行显示一下标题。

3、jmap 是一个可以输出所有内存中对象的工具,甚至可以将VM 中的heap,以二进制输出成文本。使用方法 jmap -histo pid。如果连用 SHELL jmap -histo pid>a.log可以将其保存到文本中去(windows下也可以使用),在一段时间后,使用文本对比工具,可以对比出GC回收了哪些对象。jmap -dump:format=b,file=f1 3024可以将3024进程的内存heap输出出来到f1文件里。

4、jconsole 是一个用java写的GUI程序,用来监控VM,并可监控远程的VM,非常易用,而且功能非常强。由于是GUI程序,这里就不详细介绍了,不会的地方可以参考SUN的官方文档。
使用方法:命令行里打 jconsole,选则进程就可以了。

友好提示:windows查看进程号,由于任务管理器默认的情况下是不显示进程id号的,所以可以通过如下方法加上。ctrl+alt+del打开任务管理器,选择‘进程’选项卡,点‘查看’->''选择列''->加上''PID'',就可以了。当然还有其他很好的选项。
实例:
jmap -histo:live $pid
jmap -histo $pid
jstack -l $pid
分享到:
评论

相关推荐

    android应用内存监控工具

    内存监控工具能够帮助开发者检测和分析应用的内存使用情况,预防和解决内存泄漏等问题。"Emmagee.apk"可能是一个专用于Android设备的内存监控应用,它允许用户直接在手机上查看和分析内存使用状况。 一、Android...

    Drip IE内存监控工具

    **Drip IE内存监控工具详解** Drip IE内存监控工具是一款专为开发人员设计的实用软件,主要用于实时监测Internet Explorer浏览器的内存使用情况。在客户端应用程序的开发和调试过程中,理解并控制内存消耗是非常...

    Java内存监控工具Java VisualVM

    ### Java内存监控工具Java VisualVM #### 一、概述 Java VisualVM是一款强大的Java应用程序性能分析和诊断工具,主要用于监控和分析Java应用的运行时行为,包括但不限于内存使用情况、线程状态、CPU使用率等关键...

    某进程内存监控工具源码

    本项目提供了一个名为"某进程内存监控工具源码"的实用工具,能够帮助我们实时监测指定进程的内存使用情况,以便更好地理解程序运行时的内存消耗行为。下面将详细介绍这个工具的功能及其工作原理。 首先,该工具的...

    CE 设备内存监控工具

    标题中的“CE设备内存监控工具”指的是用于监测Windows CE(简称Win CE)操作系统设备内存使用情况的软件。这种工具对于优化设备性能、诊断内存泄漏问题和确保系统稳定运行至关重要。Windows CE是微软开发的一种...

    jvm内存监控工具使用

    ### JVM内存监控工具详解 #### 引言 Java Virtual Machine (JVM) 是运行 Java 应用程序的核心组件,其性能直接影响应用的响应速度和稳定性。JVM 的内存管理是性能优化的关键,尤其是在高并发环境下,合理的内存...

    VisualGC 内存监控工具

    总的来说,VisualGC是Java开发者不可或缺的内存监控工具,它通过直观的图形界面,帮助我们理解JVM的内存管理机制,有效预防和解决内存相关问题,提高应用的性能和稳定性。对于任何对JVM内存管理有兴趣或面临内存问题...

    【Windows】内存监控工具-MemoryMonitor

    **Windows内存监控工具MemoryMonitor详解** 在Windows操作系统中,对程序的内存使用情况进行实时监控是系统管理和性能优化的重要环节。MemoryMonitor是一款专为Windows设计的内存监控工具,它可以帮助用户了解系统...

    JAVA JVM内存监控工具总结

    【Java JVM内存监控工具详解】 Java JVM内存监控是优化Java应用程序性能的关键环节,而VisualVM作为一款集成多种JDK命令行工具的可视化平台,提供了强大的分析功能。它包含的工具如jps、jstat、jmap、jinfo、jstack...

    MyMemoryMonitor(内存监控工具)V1.60绿色版了解电脑内存信息

    【MyMemoryMonitor内存监控工具V1.60】是一款针对个人电脑用户设计的轻量级系统工具,专门用于实时监控和分析计算机的RAM(随机存取存储器)使用状况。这款绿色版软件无需安装,只需下载后直接运行,极大地简化了...

    java内存监控工具jvisualvm

    监控工具VisualVM VisualVM 是Netbeans的profile子项目,能够监控线程,内存情况,查看方法的CPU时间和内存中的对 象,已被GC的对象,反向查看分配的堆栈(如100个String对象分别由哪几个对象分配出来的)。...

    浏览器内存监测工具(Drip,sIEve,JSLeaksDetector)

    首先,Drip(Dynamic Resource Inspection and Profiling)是一款轻量级的浏览器内存检测工具,它允许开发者实时监控JavaScript对象的分配和存活情况。Drip通过在浏览器控制台提供详细的内存快照,使开发者能够追踪...

    阿里监控工具阿里监控工具

    在性能监控方面,阿里监控工具能够深入到操作系统、数据库、网络等多个层次,实时监测CPU使用率、内存占用、磁盘I/O、网络流量等关键指标。通过对这些指标的持续监控,可以及时发现并预警潜在的性能瓶颈,避免系统...

    COOL内存监控显示.rar

    《深入理解COOL内存监控显示》 在计算机系统中,内存管理是至关重要的一个环节,它直接影响着程序的运行效率和...在实际工作中,我们应该养成定期使用内存监控工具的习惯,及时发现并解决内存问题,避免潜在的风险。

    Sun 用 swing写的内存监控小工具,很强

    描述中提到的“博文链接:https://java-jun.iteye.com/blog/613882”是一个指向特定博客文章的链接,该文章可能详细介绍了如何创建或使用这个内存监控工具。遗憾的是,由于这是一个假设性的场景,我无法实际访问这个...

    iOS内存监测工具FBMemoryProfiler.zip

    FBMemoryProfiler是Facebook开源的一款用于分析iOS内存使用和检测循环引用的工具库。手机设备的内存是一个共享资源。应用程序可能会不当的耗尽内存、崩溃,或者遭遇大幅度的性能降低。当分配了一块内存,并设置了...

    TrafficMonitor 网速、CPU、内存监控工具

    总的来说,TrafficMonitor 是一个实用的系统监控工具,它整合了网络、CPU 和内存监控,帮助用户有效地管理和优化计算机资源。无论你是普通用户还是技术专家,都能从 TrafficMonitor 中获益,确保你的电脑始终处于...

    idea插件JVM内存工具JProfiler11

    只需下载JProfiler11的安装包,并按照指引将其导入Idea,即可轻松开启内存监控之旅。 在导入JProfiler11插件后,我们可以通过Idea的菜单栏或者快捷键启动该工具。一旦启动,JProfiler11将连接到当前运行的JVM实例,...

Global site tag (gtag.js) - Google Analytics