高爱玲
摘 要:近年来,Java得到迅猛发展,它不仅结构严谨面向对象而且还有许多不可替代的优点:不受硬件的束缚;内存管理和访问机制更安全;内存泄露和指针越界问题大为减少。随着运行时间的增加就使得Java获得了更高的性能,本文针对这个问题简单介绍几个容易忽视的JAVA小命令,希望能给各位顶点帮助。
关键词:Java;命令;sun
作为Java的使用者,我们都知道每逢JDK更新版本之时,bin目录下命令行工具的数量和功能总会不知不觉地增加和增强。在本文中,笔者将介绍这些工具的其中一部分,主要包括用于监视虚拟机和故障处理的工具。这些故障处理工具被Sun公司作为“礼物”附赠给JDK的使用者,虽然是赠送,但事实上这些工具都非常稳定而且功能强大,能在处理应用程序性能问题、定位故障时发挥很大的作用。
说起JDK的工具,用过的程序员可能会注意到这些工具的程序体积都异常小巧,几乎所有工具的体积基本上都稳定在27KB左右。假如您使用的是Linux版本的JDK,还会发现这些工具中很多甚至就是由Shell脚本直接写成的,可以用vim直接打开它们。JDK开发团队选择采用Java代码来实现这些监控工具是有特别用意的:当应用程序部署到生产环境后,无论是直接接触物理服务器还是远程Telnet到服务器上都可能会受到限制。
1 第一個小工具jps:查询虚拟机进程
JDK的很多小工具的名字像UNIX的命令,它的功能也和UNIX命令很相似:把正在运行的虚拟机进程给我们列举出来,并把Main Class,main()的功能显示出来。这个小工具功能比较单一,但是它的出现频率还是非常高的。在使用Windows的任务管理器也可以查询进程的LVMID,多个虚拟机进程如果一个 时间段内启动了,很难对进程名称定位时,就非用jps命令不可了。
这个结果说明的信息就是:Eden区(E,表示Eden)使用了6.2%的空间,两个Survivor区里面没有内容,另外两个区则分别使用了41.42%和47.20%的空间。程序运行以来共发生MinorGC(YGC,表示Young GC)16次,总耗时0.105秒,发生Full GC(FGC,表示Full GC)3次,Full GC总耗时(FGCT,表示Full GC Time)为0.472秒,所有GC总耗时(GCT,表示GC Time)为0.577秒。使用jstat工具在纯文本状态下监视虚拟机状态的变化,确实不如后面将会提到的VisualVM等可视化的监视工具直接以图表展现那样直观。但许多服务器管理员都习惯了在文本控制台中工作,直接在控制台中使用jstat命令依然是一种常用的监控方式。
3 第三个小工具jinfo:Java用来进行信息设置
[参考文献]
[1]周志明.《深入理解JAVA虚拟机》.
[2]汪静.《JAVA学习指南》.