Jdk内置性能测试工具的介绍

(一) JConsole

JConsole使用JVM的可扩展性Java管理扩展(JMX)工具来提供关于运行于Java平台的应用程序的性能和资源消耗的信息。

在J2SE 5.0软件中,你需要启动使用-Dcom.sun.management.jmxremote选项监控的应用程序。注意:在Java SE 6软件中,不再有这一要求。当启动该应用程序时,不需要特定的命令行选项。

在生产系统中的应用

JConsole启动一个在被观察的Java程序的JVM内部的JMX代理。运行另外一部分代码仅有一点极微弱的影响-但是影响很小。

另外,尽管JConsole在监视本地应用程序的开发和快速原型开发中很有用,但在实际的应用系统中不推荐使用。理由是,JConsole本身也消耗大 量的系统资源。我们推荐的方法是用远程监控来把JConsole应用程序与被监控的系统加以隔离。因此,对于应用系统来说,以远程模式使用 JConsole更好些。对于安全的远程监控来说,可以使用安全选项。

(二) jps

jps相当于Solaris进程工具ps。更多的信息,请参考《jps-Java Virtual Machine Process Status Tool》。

不象"pgrep java"或"ps -ef grep java",jps并不使用应用程序名来查找JVM实例。因此,它查找所有的Java应用程序,包括即使没有使用java执行体的那种(例如,定制的启动 器)。另外,jps仅查找当前用户的Java进程,而不是当前系统中的所有进程。

(三) jstat

jstat 显示一个测量(instrumented)Java HotSpot虚拟机的性能统计信息(请参考《jstat-Java Virtual Machine Statistics Monitoring Tool》)。有关于性能计数器的更详细的信息请参考《Code sample-jvmstat 3.0》。

(四) jstatd

jstatd是一个Java远程方法调用 (RMI)服务器应用程序-它监控测量Java HotSpot虚拟机的创建和终止并且提供一个接口来允许远程监控工具依附到运行于本地主机的JVM(请参考《jstatd-Virtual Machine jstat Daemon》)。

在应用系统中的使用

jps及其它jvmstat实用程序都使用 极为轻量级的观察机制。由JVM分配一小部分共享内存,而性能计数器也是从这部分内存中分配的。JVM子系统基于其感兴趣的事件更新性能计数器。客户端工 具仅仅负责异步地从共享内存段中进行读取。因此,总的来说,使用jvmstat进行监控的效果是很小的。 Photoshop教程 数据结构 五笔输入法专题 
QQ病毒专题 共享上网专题 Google工具和服务专题 四、 Java SE 6平台中针对于Postmortem的可观察性工具

Java SE 6支持postmortem可观察性工具-它能够从挂起的Java进程或Java核心复制中获得信息。这些工具(除了jhat外)都使用Solaris libproc库来依附到和读取被观察的程序。在观察期间,目标程序被挂起。当Java进程被挂起或当从一个Java进程中发生一个核心复制时,可以使用 这些工具。在任何可能的情况下,请考虑使用gcore来捕获系统的核心复制的一个快照并且使用任何下列工具"离线"分析核心复制。

(一) jinfo

jinfo打印一个给定的Java进程或核心文件或一个远程调试服务器的Java配置信息。配置信息包括Java系统属性和JVM命令行标志(更多信息,请参考《jinfo-Configuration Info》)。

(二) jmap

jmap:如果这个工具不使用任何选项(除了pid或core选项)运行,那么它显示类似于Solaris的pmap工具所输出的信息。这个工具支持针对Java堆可观察性的若干其它选项。

在Java SE 6平台中,新加入了一个-dump选项。这样可以使jmap能够把Java堆信息复制到一个文件中,然后我们可以使用新的jhat命令(见下面一节)来分析它。

jmap -dump选项并不使用Solaris libproc来实现实时处理;而是,它运行当前正运行的JVM中的一小段代码,由此来实现堆复制。既然这种堆复制代码运行于JVM内部,那么其速度是比 较快的。堆复制的效果大致相当于实现一次"完全的GC"(对整个堆的垃圾收集),再加上把该堆的内容写入到文件中。实现堆复制的另外一种可能的思路是使用 gcore来进行核心复制并且运行"jmap -dump"(这与以"离线"方式运行的核心复制形成对照)。

(三) jstack

jstack等价于Solaris的pstack工具。jstack打印所有的Java线程的堆栈跟踪信息(可选地包括本机帧信息),请参考《jstack-堆栈跟踪》。关于锁和死锁的信息也可以被打印,请参考java.util.concurrent locks。

(四) jsadebugd

jsadebugd依附到一个Java进程或核心文件并且担当一个调试服务器的作用。远程客户,例如jstack、jmap和jinfo,都能够通过Java RMI依附到该服务器。

(五) jhat

jhat是一个Java堆复制浏览器。这个工具分析Java堆复制文件(例如,由上面的"jmap -dump"所产生的)。Jhat启动一个允许堆中的对象在web浏览器中进行分析的web服务器。这个工具并不是想用于应用系统中而是用于"离线"分 析。"jhat工具是平台独立的",其意思是,它可以被用来观察在任何平台上所产生的堆复制。例如,我们有可能在Linux系统上使用jhat来观察一个 在Solaris OS上所产生的堆复制。

把本机的java内存映像导出到heap.dmp中,其中PID为java进程的ID号。
jmap -dump:live,format=b,file=heap.dmp PID

导出后的映像文件可以用jhat来进行分析,-J是向java虚拟机传一个参数,如-mx768m是指定虚拟机可用最大的内存为768M。如果映像文件很大,你要指定一个很大的值,否则在分析过程中就会有OutOfMemeryError的错误。
jhat -J-mx768m -port <端口号:默认为7000> heap.dmp

时间: 2024-10-08 10:03:09

Jdk内置性能测试工具的介绍的相关文章

ARUBA无线控制器内置网管功能介绍

ARUBA无线控制器内置网管功能介绍 ARUBA无线控制器内置了业界最为丰富的无线网络管理功能,用户不需要增加任何额外费用就可以实现以下功能: l 图形化的无线网络集中配置 l 图形化的网络实时性能监控 l 图形化的无线覆盖热区图 l 图形化的无线终端定位 l 图形化的访客管理系统 以上各项管理功能的具体介绍如下: 1. 图形化的无线网络集中配置 通过图形化的无线网络集中配置功能,网络管理人员可以在控制器的图形化管理界面上对VLAN.IP.Route等网络参数,访问控制策略.带宽控制策略等无线防

Linux Bash内置命令大全详细介绍

转自:http://os.51cto.com/art/201006/207329.htm 主要Shell内置命令 Shell有很多内置在其源代码中的命令.这些命令是内置的,所以Shell不必到磁盘上搜索它们,执行速度因此加快.不同的Shell内置命令有所不同. A.2.1  bash内置命令 .:执行当前进程环境中的程序.同source. . file:dot命令从文件file中读取命令并执行. : 空操作,返回退出状态0. alias:显示和创建已有命令的别名. bg:把作业放到后台. bin

性能测试工具Gatling介绍

1 介绍 Gatling是一款基于Scala 开发的高性能服务器性能测试工具,它主要用于对服务器进行负载等测试,并分析和测量服务器的各种性能指标.Gatling主要用于测量基于HTTP的服务器,比如Web应用程序,RESTful服务等,除此之外它拥有以下特点: 支持Akka Actors 和 Async IO,从而能达到很高的性能 支持实时生成Html动态轻量报表,从而使报表更易阅读和进行数据分析 支持DSL脚本,从而使测试脚本更易开发与维护 支持录制并生成测试脚本,从而可以方便的生成测试脚本

网络性能测试工具Iperf介绍

[概要]Iperf是一款网络性能测试工具,可以方便的用它进行SDN网络带宽和网络质量的测试,Iperf支持协议.定时.缓冲区等参数的配置调整,报告TCP/UDP最大带宽.延迟抖动.数据包丢失等统计信息. 1 Iperf安装 Iperf安装方法有多种,可以下载源码编译安装,也可以直接使用编译好的二进制版本,在ubuntu下安装使用iperf尤为简单,apt-get install iperf 即可,值得一提的是Mininet自带Iperf,在SDN网络上测试比较便捷. 2 工作原理 使用Iperf

Windows 内置截图工具妙用

有些时候我们需要对右键菜单进行截图,但是使用截图工具很难操作,因为很容易将右键菜单取消掉.在此我们使用Windows内置的截图工具的小功能进行截图即可解决. 首先在Windows中搜索"截图工具" 或通过开始菜单---所有程序---附件---截图工具 打开截图工具如下 将其最小化即可. 点击出右键菜单,并按快捷键Ctrl+Prtsc即可触发截图工具的截图功能,然后框选所需范围即可.

前端性能测试工具hiper介绍

对前端性能测试工具还不了解,在请教了旁边的前端同事后学习到了简单的工具,在这里总结下. 前端的性能测试测什么? 以下是复制: 渲染引擎工作流 dom树构建:从html标签的解析开始,将各种标签解析为dom树中的各个节点,标签和dom树的中的节点是一一对应关系. 渲染树构建:将CSS和style标签中的样式信息解析为渲染树,渲染树由一些包含有颜色和大小等属性的矩形组成,它们将被按照正确的顺序显示到屏幕上. 渲染树布局和绘制:渲染树确定各个dom节点在屏幕中单确切位置,根据渲染树中的颜色等信息绘制出

jdk内置工具使用

jps –列出java进程,类似于ps命令 –参数-q可以指定jps只输出进程ID ,不输出类的短名称 –参数-m可以用于输出传递给Java进程(主函数)的参数 –参数-l可以用于输出主函数的完整路径 –参数-v可以显示传递给JVM的参数 jinfo –可以用来查看正在运行的Java应用程序的扩展参数,甚至支持在运行时,修改部分参数 –-flag <name>:打印指定JVM的参数值 –-flag [+|-]<name>:设置指定JVM参数的布尔值 –-flag <name&

Android性能测试工具Emmagee介绍

Emmagee介绍 Emmagee是监控指定被测应用在使用过程中占用机器的CPU.内存.流量资源的性能测试小工具.该工具的优势在于如同windows系统性能监视器类似,它提供的是数据采集的功能,而行为则基于用户真实的应用操作开源地址:https://github.com/NetEase/Emmagee/releases支持SDK:Android2.2以及以上版本 为什么使用Emmagee?1.开源2.使用方便3.可以监控单个应用性能4.浮窗显示实时展示数据5.CSV格式保存性能数据,方便转换为其

[转]ASP.NET MVC 入门9、Action Filter 与 内置的Filter实现(介绍)

有时候你想在调用action方法之前或者action方法之后处理一些逻辑,为了支持这个,ASP.NET MVC允许你创建action过滤器.Action过滤器是自定义的Attributes,用来标记添加Action方法之前或者Action方法之后的行为到控制器类中的Action方法中. 一些可能用到Action过滤器的地方有: 日志,异常处理 身份验证和授权 - 限制用户的访问 输出缓存 - 保存一个Action的结果 网络爬虫的过滤 本地化 动态Action - 将一个Action注入到控制器