`
flowaters
  • 浏览: 41504 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java jvm 记录(一)

阅读更多
在第一篇中,我们来介绍查看jvm运行状态的一些工具。

jps

jps用来查看当前系统中运行的java程序

jps, 使用默认参数的话,直接显示出java程序的pid(即vmid)和运行的程序名称。



jps, 使用-v参数,显示传入到jvm的参数.



jcmd
jcmd是jdk7中提供的新工具, 可以获得比jps更多的信息.

jcmd, 使用默认参数, 显示pid和类名称(或者jar名称)


jcmd中最重要的是,使用jcmd pid help,可以查看jvm中允许jcmd获取哪些信息. 如



下面例子中,也可以直接使用类名称(或者jar名称)来代替pid来执行. 即下面三行的执行效果是一样的.

jcmd example.jar help
jcmd path/example.jar help
jcmd pid help


例如:1. 显示VM版本
jcmd pid VM.version


例如:2. 显示系统信息
jcmd pid VM.system_properties


例如:3. 显示GC相关参数
jcmd pid VM.flags


例如:4. 显示vm工作时间
jcmd pid VM.uptime


例如:5. 显示类柱形图
jcmd pid GC.class_histogram > histo.txt
这里和jmap -histo pid的效果是一样的.


例如: 6. 显示全部vm性能相关的参数
jcmd pid PerfCounter.print


例如:7. 显示所有线程的java栈信息
jcmd pid Thread.print
这里和jstack -l pid的效果是一样的。

这里和下面的例子就不再附图了. 可以自己尝试.

例如:8. dump出HPROF格式的内存信息, 保存到/tmp/dump.bin文件中. 这里文件名要使用绝对路径. 如果使用相对路径,会保存到pid进程运行时所在的目录中.
jcmd pid GC.heap_dump /tmp/dump.bin

例如:9. 执行一次finalization操作,相当于执行java.lang.System.runFinalization()
jcmd pid GC.run_finalization


例如:10. 执行一次Full gc操作, 相当于执行java.lang.System.gc()
jcmd pid GC.run

参考文献:
1. Java SE 7: Reviewing JVM Performance Command Line Tools
分享到:
评论

相关推荐

    Java JVM Instruction Set

    Java虚拟机(JVM)具有一个独特的架构,它包括以下几个关键组件: ##### 寄存器 JVM使用一组寄存器来存储操作数和结果。每个线程都有自己的寄存器集合,这样可以确保多线程之间的隔离性。 ##### 内存区域 JVM...

    Java jvm虚拟机.zip

    2. 运行时数据区:JVM将内存分为不同的区域,如方法区(存储类信息)、堆(存放对象实例)、栈(存储方法调用)、程序计数器(记录下一条要执行的指令地址)和本地方法栈(服务本地方法,如JNI调用)。 3. 执行引擎...

    java -jvm 内存分配和jvm调优

    总结,Java JVM内存分配和调优是一项复杂的任务,需要结合实际应用的需求和性能指标来调整。通过理解JVM内存模型,选择合适的垃圾收集器和设置合理的内存参数,可以有效提升Java应用的性能和稳定性。在实践中,不断...

    java jvm及性能优化_javajvm优化_Java性能分析_

    Java虚拟机(JVM)是Java程序运行的基础,它负责解释和执行字节码,提供了一个平台无关的运行环境。JVM性能优化是提升Java应用效率的关键环节,涉及到内存管理、垃圾回收、线程调度等多个方面。以下是对"Java JVM及...

    java虚拟机JVM详解ppt

    Java虚拟机(JVM)作为Java编程语言的核心组件之一,其重要性不言而喻。本文将深入剖析JVM的基本概念、架构及其内存管理机制,重点解读堆和栈内存溢出的情况及案例分析。 #### 二、Java虚拟机(JVM)简介 Java虚拟机...

    揭秘Java虚拟机-JVM设计原理与实现

    其中,堆存储对象实例,栈处理方法调用,方法区存储类信息,本地方法栈服务本地方法,程序计数器记录下一条指令的位置。 4. **字节码执行**:JVM通过解释器或即时编译器(JIT)来执行字节码。解释器逐行解释执行,...

    【狂神说Java】JVM快速入门篇

    总结,了解JVM的这些基础知识是成为一名合格的Java开发者的必经之路。深入学习JVM,不仅可以提升编程技能,还能帮助解决性能问题,使代码运行更加高效。通过实践和不断探索,我们可以更好地理解和利用这个强大的平台...

    Java虚拟机(JVM)面试题 51道.pdf

    Java虚拟机(JVM)是Java语言的核心组成部分,它为Java程序提供了一个跨平台的运行环境。以下是对JVM相关知识点的详细解释: 1. **Java代码的执行过程**: - 开发人员编写的Java代码首先通过`javac`编译器转化为`....

    java JVM standard

    堆存储对象实例,栈保存方法调用,方法区存储类信息,程序计数器记录下一条要执行的指令,本地方法栈则为Java Native Interface (JNI) 方法服务。 4. **垃圾收集**:JVM提供自动内存管理,通过垃圾收集器回收不再...

    java jvm内存模型

    Java虚拟机(JVM)内存模型是Java虚拟机的核心组件之一,它定义了Java程序在运行时的内存布局和管理方式。JVM内存模型主要分为五个部分:程序计数器、虚拟机栈、本地方法栈、堆、方法区。 1. 程序计数器(Program ...

    实战JAVA虚拟机 JVM故障诊断与性能优化

    堆内存用于存储对象实例,栈内存处理方法调用,方法区存储类信息,程序计数器记录下一条指令地址,本地方法栈服务于Java的Native方法。 三、JVM参数配置 优化JVM性能的关键在于正确设置JVM参数。这些参数包括初始堆...

    JAVA8虚拟机(jvm)规范_Chinese version.rar

    堆是存储对象实例的主要区域,栈则用于存储方法调用时的局部变量,方法区保存类信息,程序计数器记录下一条要执行的指令,本地方法栈服务于JNI(Java Native Interface)调用。 2. **垃圾回收**:Java的自动内存...

    java JVM 内存回收

    虽然Java语言本身并不强制要求JVM实现GC,但现代JVM如Oracle的HotSpot JVM等普遍提供了这一功能。 GC的主要目标是识别和清理不再被任何活动对象引用的对象。有两个主要的判断对象是否可回收的方法:引用计数和对象...

    java11-jvm白皮书_java_govwe_

    Java 11的JVM还增强了对变量处理的支持,如JEP 304(VarHandle)提供了一种安全、高性能的方式来访问和修改变量,无论它们是在堆上还是在栈上。这种新的抽象层可以避免内存模型错误,并且适用于多线程环境。 在JVM...

    JAVA虚拟机(JVM)规范(中文版).rar

    JAVA虚拟机(JVM)是Java语言的核心组成部分,它为Java程序提供了运行环境,使得Java代码能在任何支持JVM的平台上运行,实现了“一次编写,到处运行”的目标。JVM规范定义了Java程序如何在特定系统上被加载、解析、...

    java_jvm.zip_java

    Java虚拟机(JVM)是Java运行环境的一部分,它的主要任务是执行Java字节码。字节码是一种中间语言,由Java编译器将源代码编译成,然后由JVM解析并执行。JVM的存在使得Java程序可以跨平台运行,因为它提供了平台无关...

    java中jvm内存分配相关资料总结整理

    Java虚拟机(JVM)是Java程序运行的基础,它负责解析字节码并管理程序的内存。本资料总结主要关注JVM内存分配及其运行原理,这对于理解和优化Java应用程序的性能至关重要。 1. **JVM内存结构** JVM内存分为几个...

    狂神说JVM探究.rar

    【狂神说JVM探究】是一份集合了多种格式的学习资料,主要涵盖了Java虚拟机(JVM)的基础知识。这份资料出自B站上的【狂神说Java】系列教程,为快速入门JVM提供了详实的笔记。以下是根据这些资源可能包含的一些关键...

    Java JVM面试题.rar

    Java虚拟机(JVM)是Java程序运行的基础,它是一个抽象的计算机系统,负责执行Java字节码。在Java开发和面试中,JVM相关的知识是必不可少的一部分。下面,我们将深入探讨Java JVM的一些核心概念和面试常问问题。 1....

    Java JVM 面试题总结

    JVM(Java Virtual Machine,Java虚拟机)的主要作用在于为Java程序提供一个跨平台的运行环境。通过生成能在不同平台上运行的字节码(即目标代码),使得Java程序无需重新编译即可在各种操作系统上执行。这一特性极...

Global site tag (gtag.js) - Google Analytics