JDK5.0以上版本的特殊用途(转贴)
关键字: jdk5.0以上版本的特殊用途(转贴)
jinfo:可以输出并修改运行时的java 进程的opts。
jps:与unix上的ps类似,用来显示本地的java进程,可以查看本地运行着几个java程序,并显示他们的进程号。
jstat:一个极强的监视VM内存工具。可以用来监视VM内存内的各种堆和非堆的大小及其内存使用量。
jmap:打印出某个java进程(使用pid)内存内的,所有‘对象’的情况(如:产生那些对象,及其数量)。
jconsole:一个java GUI监视工具,可以以图表化的形式显示各种数据。并可通过远程连接监视远程的服务器VM。
接下来是对这些工具的详细介绍:
从最简单的jstat工具开始:我想很多人都是用过unix系统里的ps命令,这个命令主要是用来显示当前系统的进程情况,有哪些进程,及其id。jps 也是一样,它的作用是显示当前系统的java进程情况,及其id号。我们可以通过它来查看我们到底启动了几个java进程(因为每一个java程序都会独占一个java虚拟机实例),和他们的进程号(为下面几个程序做准备),并可通过opt来查看这些进程的详细启动参数。
使用方法:在当前命令行下打 jps(需要JAVA_HOME,没有的话,到改程序的目录下打)
接下来是jstat,我之所以这次调优Liferay portal是因为,liferay在默认的情况下,并发用户一多就会产生perm out of momery异常。虽然很开就解决了,但发现对VM内存使用量监控的重要性。通过google,很快的发现了jstat这个工具。
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每三行显示一下标题。
jmap是一个可以输出所有内存中对象的工具,甚至可以将VM 中的heap,以二进制输出成文本。使用方法 jmap -histo pid。如果连用SHELL jmap -histo pid>a.log可以将其保存到文本中去,在一段时间后,使用文本对比工具,可以对比出GC回收了哪些对象。jmap -dump:format=b,file=String 3024可以将3024进程的内存heap输出出来到String文件里。
jinfo:的用处比较简单,就是能输出并修改运行时的java进程的运行参数。用法是jinfo -opt pid 如:查看2788的MaxPerm大小可以用 jinfo -flag MaxPermSize 2788。
jconsole是一个用java写的GUI程序,用来监控VM,并可监控远程的VM,非常易用,而且功能非常强。由于是GUI程序,这里就不详细介绍了,不会的地方可以参考SUN的官方文档。
使用方法:命令行里打 jconsole,选则进程就可以了。
以下是这些工具的SUN官方说明:
jps:http://java.sun.com/j2se/1.5.0/docs/tooldocs/share/jps.html
jstat:http://java.sun.com/j2se/1.5.0/docs/tooldocs/share/jstat.html
jmap:http://java.sun.com/j2se/1.5.0/docs/tooldocs/share/jmap.html
jconsole:http://java.sun.com/j2se/1.5.0/docs/guide/management/jconsole.html
分享到:
相关推荐
JDK5.0引入了枚举类型,这是一种特殊的类,用于定义一组固定的常量,提高了枚举的类型安全性和可编程性。 9. 前向引用(Forward References) 在枚举中,可以向前引用其他枚举常量,增强了枚举的灵活性。 10. ...
Java JDK 5.0是Java开发工具包的一个重要版本,由Sun Microsystems在2004年发布,它引入了一系列重大改进和新特性,对Java编程语言产生了深远影响。本学习笔记将深入探讨JDK 5.0的关键知识点,帮助开发者理解和掌握...
Java JDK 5.0是Java开发工具包的一个重要版本,它的发布标志着Java语言的重大进步,引入了许多创新特性,极大地提升了开发效率和代码质量。在这个学习笔记中,良葛格将带领我们深入理解JDK 5.0的关键特性,并提供...
JDK(Java Development Kit)5.0是Java编程语言的一个重要版本,它在2004年发布,引入了许多新的特性和改进。以下是JDK 5.0的一些关键特性: 1. **类型注解**:JDK 5.0引入了类型注解,使得编译器和工具能够理解...
2. **枚举类型**:JDK 5.0添加了枚举类型,这是一种特殊的类,可以定义一组固定的实例。枚举常用于表示有限的、预定义的值集,如方向、星期等,提供了一种更安全、更清晰的替代常量的方案。 3. **自动装箱与拆箱**...
以上只是JDK 5.0 API中的一部分关键特性,实际文档中还涵盖了异常处理、多线程、I/O流、网络编程、国际化、XML处理、安全管理等多个方面的详细内容。通过深入理解和熟练运用这些特性,开发者能够编写出更高效、更...
本篇文章将重点讨论Java的基础知识加强,包括Eclipse的使用、JDK 5.0的新特性,如静态导入、自动装箱/拆箱、增强for循环、可变参数以及枚举类。 首先,Eclipse是一个强大的Java集成开发环境(IDE),在Java开发中起...
在本案例中,我们讨论的是JDK 1.5,也被称为Java SE 5.0,这是一个里程碑式的版本,发布于2004年9月30日。它引入了许多重要的新特性,对Java编程产生了深远的影响。 1. Generics(泛型):JDK 1.5最重要的特性之一...
JDK1.5,也称为Java 5.0,是一个重要的版本,它引入了许多创新特性,提升了Java编程的效率和性能。"JDK1.5免安装"意味着这个版本的JDK可以无需通过传统的安装过程,而是直接解压到指定目录并配置环境变量即可使用,...
JDK 1.5,也被称为Java SE 5.0,是Java发展历程中的一个重要版本,引入了许多重要的新特性和改进,极大地提升了开发效率和代码质量。本简体中文版帮助文档旨在为中文用户提供详尽的JDK 1.5使用指南。 **一、泛型** ...
标题“jdk-1_5_0-windows-i586(1)”指的是Java Development Kit(JDK)的第1.5.0版本,针对Windows操作系统32位(i586)平台的安装程序。这个版本的JDK是Oracle公司发布的一个重要的Java开发工具集,包含了编译器、...
- **3.4.2 在工程中使用JDK5.0** JDK 5.0提供了许多新特性,需要确保项目正确配置以充分利用这些特性。 **3.5 总结** 通过以上章节的介绍,我们可以了解到JBuilder2005不仅提供了强大的开发工具,还支持最新的...
JDK 1.5,也被称为Java SE 5.0,是Java编程语言的一个重要版本,它引入了许多关键特性,提升了开发效率和程序性能。API(Application Programming Interface)是JDK的核心组成部分,提供了大量的类和接口供开发者...
《Java参考文档.JDK_API_1_6_zh_CN》是Java开发人员的重要参考资料,它详细阐述了Java Development Kit (JDK) 1.6版本中的API(应用程序接口)。这个文档是中文版,方便中国开发者理解和使用Java语言,提供了一个...
Java Annotation,也称为注解,是Java编程语言中的一种元数据机制,自JDK 5.0开始引入。注解提供了在源代码中嵌入元数据的能力,这些元数据可以被编译器、构建工具或者运行时环境用来处理代码。它们在代码中看起来...
注1:只支持Eclipse 3.1.1及以上版本。 注2:如果在Eclipse中找不到Jocky插件,请删除 Eclipse安装目录/configuration/org.eclipse.update 文件夹 (Maybe an eclipse bug?)。 2.4 如何使用符号保留指令 除了在...
注1:只支持Eclipse 3.1.1及以上版本。 注2:如果在Eclipse中找不到Jocky插件,请删除 Eclipse安装目录/configuration/org.eclipse.update 文件夹 (Maybe an eclipse bug?)。 2.4 如何使用符号保留指令 除了...
例如,JDK5.0是Sun公司发布的Java开发工具包的一个版本。 - **功能**:JDK包含了必要的库文件、编译器(javac)、解释器(java)、JAR工具以及其他实用工具。 - **安装**:用户可以从官方网站免费下载并安装JDK。...
注1:只支持Eclipse 3.1.1及以上版本。 注2:如果在Eclipse中找不到Jocky插件,请删除 Eclipse安装目录/configuration/org.eclipse.update 文件夹 (Maybe an eclipse bug?)。 2.4 如何使用符号保留指令 除了在...