- 浏览: 510567 次
- 性别:
- 来自: 杭州
文章分类
最新评论
-
devon.k:
推荐的一种解决方案:https://developer.jbo ...
JBoss应用遇到问题记录 -
liuzl121:
楼主你好,我遇到了你说的第一个问题,能不能详细一些?
JBoss应用遇到问题记录 -
showzh:
...
MySQL5.1列类型 -
zijie110:
...
使用SpringSide的PropertyFilter无法实现 where 属性名1 like '%值1%' or 属性名1 like '%值2%' 的效果 -
JAVA-JVM:
您好,我看了您的一篇文章“用Maven构建Flex4项目实践记 ...
用Maven构建Flex4项目实践记录
1. 开启jdb,有2种方式:
1) 另开一个JVM进行调试:
jdb ClassName
2) 在已存在的JVM中进行调试:
1.进程启动命令: java -agentlib:jdwp=transport=dt_shmem,address=jdbconn,server=y,suspend=y ClassName 或者 java -Xdebug -Xrunjdwp:transport=dt_socket,address=jdbconn,server=y,suspend=n 2.进程启动后进行jdb: jdb -attach jdbconn
其中:
transport 指定调试数据的传送方式:
dt_socket是指用SOCKET模式;
dt_shmem指用共享内存方式,dt_shmem只适用于Windows平台(windows平台只能用dt_shmem方式,用eclipse远程调试则不限);
suspend 指定是否在调试客户端建立起来后再执行JVM。
其他参数:
onthrow 指定当产生该类型的Exception时,JVM就会中断下来,进行调式。该参数可选。
launch 指定当JVM被中断下来时执行的可执行程序。该参数可选。
onuncaught(=y或n) 指定出现uncaught exception 后,是否中断JVM的执行。该参数可选。
2. jdb基本命令
5) cont 继续运行直到下个断点
6) step 执行当前行
7) next 步进一行
8) print obj 输出变量值
9) catch ExceptionClassName 当发生指定异常时stop
10) ignore 取消catch命令的效果
11) exit 退出jdb
完整命令如下图:
使用 jmap 和 jhat 来监控内存:
1) jmap -dump:live,format=b,file=dumpfile pid
2) jmap -histo pid 查看JVM堆中对象详细占用情况
3) jhat -J-mx512m dumpfile
然后会提示类似如下:
Reading from e:/heap2.tmp... Dump file created Thu Mar 21 15:29:59 CST 2013 Snapshot read, resolving... Resolving 586350 objects... Chasing references, expect 117 dots............................................. ........................................................................ Eliminating duplicate references................................................ ..................................................................... Snapshot resolved. Started HTTP server on port 7000 Server is ready.
然后可以访问以下地址,查看相关信息:
http://localhost:7000/
http://localhost:7000/histo/
http://localhost:7000/showInstanceCounts/
http://localhost:7000/showInstanceCounts/includePlatform/
http://localhost:7000/oql/
监控VM使用量: jstat
jstat -class pid 显示加载class的数量,及所占空间等信息
jstat -compiler pid 显示VM实时编译的数量等信息
jstat -gc pid 显示gc的信息,查看gc的次数及时间。最后五项分别是: young gc的次数,young gc的时间,full gc的次数,full gc的时间,gc的总时间。
jstat -gccapacity pid 显示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 -gcutil pid 统计gc信息统计。
jstat -printcompilation pid 当前VM执行的信息。 除了以上一个参数外,还可以同时加上 两个数字,如:jstat -printcompilation 3024 250 6是每250毫秒打印一次,一共打印6次,还可以加上-h3每三行显示一下标题。
see:
JDK自带VM分析工具jps,jstat,jmap,jconsole
性能测试 -- jmap 输出内存中对象 的工具使用 --监控java内存溢出
JMX命令行工具: jmxterm(一个基于jconsole的jmx client命令行工具,不需要事先开启JMX服务端口)
1) 运行: java -jar jmxterm-xxx.jar
2) $>jvms 列出当前java进程
3) $>open PID 连接上要查看的java进程
4) $>domains 显示当前可查看的bean域
5) $>beans 上一步所列出的domain(如:$>beans java.lang ) 显示该域下可查看的bean
6) $>bean 上一步所列出的bean(如:$>bean java.lang:type=Memory)选定该bean
7) $>info 显示上一步所选定的bean下可查看的属性
8) $>get 上一步所列出的属性名(如:$>get ObjectPendingFinalizationCount) 显示该属性值
过程中显示的信息如下:
c:\>java -jar jmxterm-1.0.jar Welcome to JMX terminal. Type "help" for available commands. $>jvms 9184 ( ) - jmxterm-1.0.jar 8760 ( ) - jdiary.jar 4200 ( ) - $>open 8760 #Connection to 8760 is opened $>domains #following domains are available JMImplementation com.sun.management java.lang java.util.logging $>beans java.lang #domain = JMImplementation: JMImplementation:type=MBeanServerDelegate #domain = com.sun.management: com.sun.management:type=HotSpotDiagnostic #domain = java.lang: java.lang:name=Code Cache,type=MemoryPool java.lang:name=CodeCacheManager,type=MemoryManager java.lang:name=PS Eden Space,type=MemoryPool java.lang:name=PS MarkSweep,type=GarbageCollector java.lang:name=PS Old Gen,type=MemoryPool java.lang:name=PS Perm Gen,type=MemoryPool java.lang:name=PS Scavenge,type=GarbageCollector java.lang:name=PS Survivor Space,type=MemoryPool java.lang:type=ClassLoading java.lang:type=Compilation java.lang:type=Memory java.lang:type=OperatingSystem java.lang:type=Runtime java.lang:type=Threading #domain = java.util.logging: java.util.logging:type=Logging $>bean java.lang:type=Memory #bean is set to java.lang:type=Memory $>info #mbean = java.lang:type=Memory #class name = sun.management.MemoryImpl # attributes %0 - HeapMemoryUsage (javax.management.openmbean.CompositeData, r) %1 - NonHeapMemoryUsage (javax.management.openmbean.CompositeData, r) %2 - ObjectPendingFinalizationCount (int, r) %3 - Verbose (boolean, rw) # operations %0 - void gc() # notifications %0 - javax.management.Notification(java.management.memory.threshold.exceeded ,java.management.memory.collection.threshold.exceeded) $>get ObjectPendingFinalizationCount #mbean = java.lang:type=Memory: ObjectPendingFinalizationCount = 0; $>
其他命令可通过help进行查询,对于每个命令也可以通过 -h 查看其参数用法。
发表评论
-
JVM记要
2020-03-13 22:06 4JVM架构 图略(iteye已废) ... -
JUC(java.util.concurrent)要点笔记
2020-03-02 11:40 1074iteye没落了,编辑格式太难整,表格位置有问题,图片 ... -
JMH记要
2020-01-16 11:46 6131.What's JMH?——OpenJDK提供的微基准测 ... -
Windows下多个jdk共存问题
2016-08-26 13:52 1154现象: 共安装有jdk1.6、1.7、1.8这3个版本, ... -
国际化
2015-01-06 16:50 923语言代码标准 国家代码标准 Java: pu ... -
LTW(Loading-Time Weaving)应用实践要点记录
2013-05-09 17:50 0http://static.springsource.org ... -
Java基础修炼
2012-12-13 19:00 1083Java标准与规范 Java ... -
Java并发编程持续学习
2012-07-04 17:31 1380一. 概念与基础 book: 《Java并发编程实践》 ... -
Openfire和Spark本地开发环境搭建记要
2012-05-16 22:41 111471. Openfire 参考:openfire搭建 ... -
Java基础恶补——Development
2012-02-18 19:26 1055[SCJP Sun Certified Programmer ... -
Java基础恶补——线程
2012-02-11 23:19 910[SCJP Sun Certified Programmer ... -
Java基础恶补——内部类
2012-02-04 19:35 1175[SCJP Sun Certified Programmer ... -
Java基础恶补——泛型和集合
2012-02-01 18:17 3159[SCJP Sun Certified Programmer ... -
Java基础恶补——Strings, I/O, Formatting, and Parsing
2012-01-29 15:51 1226[SCJP Sun Certified Programmer ... -
Java基础恶补——控制流、异常、断言
2011-11-30 19:02 2070[SCJP Sun Certified Programmer ... -
Java基础恶补——Operators
2011-11-24 16:00 1187[SCJP Sun Certified Programmer ... -
Java基础恶补——Assignments
2011-11-23 14:42 1148[SCJP Sun Certified Programmer ... -
Java基础恶补——OO
2011-11-17 13:30 1174[SCJP Sun Certified Programmer ... -
Java基础恶补——声明及访问控制
2011-11-07 15:54 1160[SCJP Sun Certified Programmer ... -
Java基础恶补——关键字
2011-10-19 16:01 0Java关键字表(assert added in 1.4, e ...
相关推荐
在Java虚拟机运行过程中,我们可能需要使用各种命令工具来监控和诊断可能出现的问题。以下是一些常用的JVM命令工具及其知识点。 1. jps命令 jps(JVM Process Status Tool)命令用于列出正在运行的Java虚拟机进程...
### jvm常用命令工具 #### 一、概述 在程序运行过程中,经常会出现各种各样的问题,例如性能瓶颈、内存泄漏、死锁等。为了快速定位并解决问题,我们需要收集多种类型的运行时信息,包括但不限于系统日志、堆转储...
以下是从“关于Java的常用DOS命令”这一主题中提炼出的关键知识点,这些知识点涵盖了文件操作、环境变量查看、Java编译运行以及与Tomcat服务器相关的配置等核心内容。 ### DOS命令在Java开发中的应用 #### 文件...
在Java编程中,`javac`和`java`是两个非常重要的命令行工具,它们分别用于编译和执行Java程序。本文将详细介绍这两个命令的使用方法,以及在处理带有包的Java程序时如何操作。 `javac`是Java语言的编译器,负责将源...
本资源分享了28个Java常用的工具类源码,涵盖了多种实用功能,包括添加水印、文件上传、生成略缩图、文件操作、MD5加密、时间日期处理、字符串操作以及过滤器和数据导出到Excel。 1. **添加水印**:在图像处理中,...
以下是一些Java开发中常用的Linux命令,它们对于优化开发流程至关重要。 1. **ls**:列出目录内容。`ls -l` 可以查看详细信息,包括文件权限、所有者、大小和修改时间。 2. **cd**:切换目录。用于在文件系统中...
以下是一些Java中常用工具类的详细介绍: 1. **String**: `java.lang.String` 类是最基础的字符串处理工具类,提供了大量的静态方法,如 `concat()`、`substring()`、`indexOf()`、`replace()` 等,用于字符串的...
**WSDL2Java命令使用详解** 在Web服务开发中,WSDL(Web Service Description Language)是一种XML格式,用于定义服务接口、操作、消息结构等。它使得服务提供者和服务消费者可以进行互操作。Apache Axis是Java平台...
Linux常用命令汇总中,首先涉及到的是检查Java开发工具包(JDK)是否已安装以及版本信息。使用命令`java –version`和`javac –version`可以实现该功能。`java –version`用于查看Java运行环境的版本,而`javac –...
该工具为个人整理修改的常用工具类,maven结构,Java语言编写详细依赖间pom文件,如有冲突自行修改, 包括条形码操作工具、二维码操作、图片验证码工具、动态密码工具、雪花算法id工具、签名工具、poi导出、json转换...
总结来说,这个"linux常用命令工具安装包"提供了在Linux系统中进行文件传输、网络管理以及压缩文件处理的关键工具。rzsz用于文件传输,net-tools涵盖了多种网络管理命令,unzip用于解压.zip文件,而zlib及其开发包则...
提供了很丰富的java工具类,包括字符串、数字、日期、文件、图像、编码解码、校验工具、文档操作等。 主要分为以下几种: - 1.通用操作类,例如String、数字、日期、各种校验等 - 2.文档操作,excel、pdf等 - 3.加密...
以下是一些常用的Java性能调优命令及其用法和相关知识点。 1. jps命令用于列出所有的JVM实例。通过该命令,开发者可以快速查看本机上所有Java应用程序的进程ID。例如,使用`jps`可以列出本机所有的JVM实例。 2. ...
在Java开发过程中,有一些常用工具是不可或缺的,这些工具包括但不限于JDK(Java Development Kit)、Tomcat(一个流行的Java应用服务器)等。本篇将详细讲解如何配置这些工具。 首先,JDK是Java编程的基础,包含了...
以下是一些常用的Java项目打包工具及其功能详解: 1. **Maven**: Maven是一个基于项目对象模型(Project Object Model,POM)的概念,用于管理和构建Java项目。它通过一个XML格式的POM文件来管理项目的构建、报告...
在这个"java工程常用代码工具类"中,我们可以找到几个关键功能的实现,包括Jedis、FTP上传、JSON格式化、RESTful风格接口以及HTTP工具。下面将分别详细介绍这些知识点。 1. **Jedis**: Jedis是Java语言编写的...
jad 是应用最广泛的java 反编译工具;其本身是命令行工具;其他很多用具是在jad内核的基础上加了一个图形界面;比如我上传的资源、Cavaj Java Decompiler 以下假设jad.exe在c:\java目录下 一、基本用法 ...
`java常用API_试学.wmv`可能是一个视频教程,它应该会更直观地展示如何使用这些API,并提供实践案例来帮助学习者加深理解。而`简介.txt`可能包含了课程的概述或者进一步的学习指南。通过深入学习和实践,开发者可以...
常用的 Java 反编译工具有 JAD, CFR, FernFlower, Procyon 等。 二、JAD JAD 是一款功能强大的 Java 反编译器,其反编译结果的质量相对较高,接近原始源代码。使用 JAD,你可以通过命令行或者集成开发环境(IDE)...
12. **jcmd**:Java命令工具,用于在JDK 1.7及更高版本中执行诊断操作。 13. **jrunscript**:运行JavaScript或其他支持的脚本语言,利用Java平台的功能。 14. **keytool**:管理密钥和证书,用于创建和管理...