- 浏览: 372061 次
- 性别:
- 来自: 杭州
-
文章分类
最新评论
-
xujishen:
新入职 写道还是没很明白~~这个BigDecimal.ROUN ...
BigDecimal带精度的运算 -
542348257:
数字为long型的时候 好像处理有点问题
【无聊的笔记】将数字转换为中文读法 -
陈小妞:
当你输入100003980的时候在万位会多一个万字
【无聊的笔记】将数字转换为中文读法 -
stranger520:
可能有问题吧,举个例子: pacage1/User.class ...
java读取指定package下的所有class -
springdata_springmvc:
java程序语言学习教程 地址http://www.zuida ...
java学习——mina篇
打开 %java_home%\bin 下面,看一堆的命令
windows下是一堆exe文件。
挑几个主要的来学习记录下,蛮有用的,居家旅行,调错装x,必备!~
java :忽略
javac :忽略 , 唯一需要知道 javac -g ,
并且通过实地证明,eclipse,mvn编译都是默认加了-g进行编译的。(感谢R_Fx指导,名字太长记不住。。。)
javah :忽略。jni才用得到!~
javaw:原来是启动图形界面用到的!~
jvisualvm.exe 这个点了就知道了。很给力~~~
javap :
详细讲,这玩意是分析运行前代码和了解jvm,class机制的好家伙!
jconsole : 会用就无视了
下面4个是解决很多oom或者监视运行中的JVM的必备武器。
jhat
jps
这个很简单,用一下就知道,通过这个查看java的进程id。
14950 Jps
31664 Main
jmap
1:jmap -heap [pid]
Attaching to process ID 31664, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 10.0-b23
using thread-local object allocation.
Parallel GC with 2 thread(s)
Heap Configuration:
MinHeapFreeRatio = 40
MaxHeapFreeRatio = 70
MaxHeapSize = 1610612736 (1536.0MB)
NewSize = 335544320 (320.0MB)
MaxNewSize = 335544320 (320.0MB)
OldSize = 4194304 (4.0MB)
NewRatio = 8
SurvivorRatio = 8
PermSize = 100663296 (96.0MB)
MaxPermSize = 268435456 (256.0MB)
Heap Usage:
PS Young Generation
Eden Space:
capacity = 187367424 (178.6875MB)
used = 149624088 (142.6926498413086MB)
free = 37743336 (35.994850158691406MB)
79.85597752574108% used
From Space:
capacity = 72679424 (69.3125MB)
used = 2218824 (2.1160354614257812MB)
free = 70460600 (67.19646453857422MB)
3.0528915584141116% used
To Space:
capacity = 69664768 (66.4375MB)
used = 0 (0.0MB)
free = 69664768 (66.4375MB)
0.0% used
PS Old Generation
capacity = 1275068416 (1216.0MB)
used = 496040208 (473.06080627441406MB)
free = 779028208 (742.9391937255859MB)
38.903026831777474% used
PS Perm Generation
capacity = 100663296 (96.0MB)
used = 95414112 (90.99398803710938MB)
free = 5249184 (5.006011962890625MB)
94.78540420532227% used
好吧,我发现我见识浅了,看到这儿我欣喜若狂。如此清楚。
2:jmap -histo [pid] 或者 jmap -histo [pid] > heapDump.log
用用有惊喜。
写道
[admin@xxxx~]$ jmap -histo 31664 > heapDump.log
[admin@xxxx~]$
[admin@xxxx~]$ vi heapDump.log
写道
num #instances #bytes class name
----------------------------------------------
1: 1417850 97522464 [C
2: 703592 61916096 com.taobao.forest.domain.dataobject.std.impl.DefaultStdCategoryPropertyValueDO
3: 790666 56248464 [Ljava.lang.Object;
4: 91101 46575560 [I
5: 1467357 35216568 java.lang.String
6: 408526 32682080 com.taobao.forest.domain.dataobject.proprepo.impl.DefaultPropertyValueDO
7: 49821 29456896 [B
8: 195943 24656024 <constMethodKlass>
9: 537905 17212960 java.io.ObjectStreamClass$WeakClassKey
10: 127367 15981640 [Ljava.util.HashMap$Entry;
11: 653443 15682632 java.util.HashMap$Entry
12: 195943 15682208 <methodKlass>
13: 317288 15229824 com.taobao.forest.domain.dataobject.proprepo.impl.DefaultValueDO
14: 412358 13195456 java.util.LinkedHashMap$Entry
15: 259224 12435280 <symbolKlass>
16: 177 11546520 [Ljava.io.ObjectInputStream$HandleTable$HandleList;
内存dump,
友情提示:内存dump就dump一次一般没太多参考意义,推荐多dump几次,然后通过分析工具进行分析观察,方为王道;
3:jmap -dump:format=b,file=formatDump [pid]
这个才是王道的分析导出。。。
各个分析工具分析这个比较给力,上面哪个是文本,这个是format后的二进制文件。
而且耗时有一会。。。
写道
[admin@xxxx~]$ jmap -dump:format=b,file=formatDump 31664
Dumping heap to /home/admin/formatDump ...
Heap dump file created
[admin@xxxx~]$
[admin@xxxx~]$
[admin@xxxx~]$ vi heapDump.log
num #instances #bytes class name
----------------------------------------------
1: 1417850 97522464 [C
2: 703592 61916096 com.taobao.forest.domain.dataobject.std.impl.DefaultStdCategoryPropertyValueDO
3: 790666 56248464 [Ljava.lang.Object;
4: 91101 46575560 [I
5: 1467357 35216568 java.lang.String
6: 408526 32682080 com.taobao.forest.domain.dataobject.proprepo.impl.DefaultPropertyValueDO
7: 49821 29456896 [B
8: 195943 24656024 <constMethodKlass>
9: 537905 17212960 java.io.ObjectStreamClass$WeakClassKey
10: 127367 15981640 [Ljava.util.HashMap$Entry;
11: 653443 15682632 java.util.HashMap$Entry
12: 195943 15682208 <methodKlass>
13: 317288 15229824 com.taobao.forest.domain.dataobject.proprepo.impl.DefaultValueDO
14: 412358 13195456 java.util.LinkedHashMap$Entry
15: 259224 12435280 <symbolKlass>
16: 177 11546520 [Ljava.io.ObjectInputStream$HandleTable$HandleList;
[admin@xxxx~]$ jmap -dump:format=b,file=formatDump 31664
Dumping heap to /home/admin/formatDump ...
Heap dump file created
[admin@xxxx~]$
jstack
用法:jstack [pid]
正如其名,visualVm里面的线程dump用的也就是这玩意了。
可以dump当前的所有线程堆栈。
"Signal Dispatcher" daemon prio=10 tid=0x08117c00 nid=0x7bb7 runnable [0x00000000..0x44070b80]
java.lang.Thread.State: RUNNABLE
"Finalizer" daemon prio=10 tid=0x080f6800 nid=0x7bb6 in Object.wait() [0x440cf000..0x440cff20]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:116)
- locked <0x54c79120> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:132)
at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159)
"Reference Handler" daemon prio=10 tid=0x080f5800 nid=0x7bb5 in Object.wait() [0x44120000..0x44120fa0]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:485)
at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:116)
- locked <0x54c1a290> (a java.lang.ref.Reference$Lock)
"VM Thread" prio=10 tid=0x080f2400 nid=0x7bb4 runnable
"GC task thread#0 (ParallelGC)" prio=10 tid=0x08072800 nid=0x7bb2 runnable
"GC task thread#1 (ParallelGC)" prio=10 tid=0x08073800 nid=0x7bb3 runnable
"VM Periodic Task Thread" prio=10 tid=0x0824c800 nid=0x7bc0 waiting on condition
JNI global references: 19493
jhat
用法:jhat -J-mx1024m heap_file_name
前面dump出来的二进制文件,现在用。
放在我这里用就是:jhat -J-mx1024m formatDump
。。。这玩意太慢了。。随便dump一个都500来M,真是恐怖~~~
Dump file created Wed Dec 29 19:20:40 CST 2010
Snapshot read, resolving...
Resolving 9500142 objects...
#
# An unexpected error has been detected by Java Runtime Environment:
#
# java.lang.OutOfMemoryError: requested 131072000 bytes for GrET in C:\BUILD_ARE
A\jdk6_13\hotspot\src\share\vm\utilities\growableArray.cpp. Out of swap space?
#
# Internal Error (allocation.inline.hpp:42), pid=5492, tid=8632
# Error: GrET in C:\BUILD_AREA\jdk6_13\hotspot\src\share\vm\utilities\growableA
rray.cpp
#
# Java VM: Java HotSpot(TM) Client VM (11.3-b02 mixed mode windows-x86)
# An error report file with more information is saved as:
# C:\Users\guoliang\Downloads\hs_err_pid5492.log
#
# If you would like to submit a bug report, please visit:
# http://java.sun.com/webapps/bugreport/crash.jsp
#
这个太尴尬了。。。Out of swap space?。。。。
jstatd
jstat(sun.tools.jstat)
jstat实用程序可以用于收集各种各样不同的统计数据。jstat统计数据被分类到“选项”中,这些选项在命令行中被指定作为第一参数。对于JDK 1.6来说,您可以通过采用命令-options运行jstat查看可用的选项清单。清单1中显示了部分选项:
清单1.jstat选项
1.
2.
3. -class
4. -compiler
5. -gc
6. -gccapacity
7. -gccause
8. -gcnew
9. -gcnewcapacity
10. -gcold
11. -gcoldcapacity
12. -gcpermcapacity
13. -gcutil
14. -printcompilation
实用程序的JDK记录将告诉您清单1中每个选项返回的内容,但是其中大多数用于收集垃圾的收集器或者其部件的性能信息。-class选项显示了加载及未加载的类(使其成为检测应用程序服务器或代码中ClassLoader泄露的重要实用程序,且-compiler和-printcompilation都显示了有关Hotspot JIT编译程序的信息。
默认情况下,jstat在您核对信息时显示信息。如果您希望每隔一定时间拍摄快照,请在-options指令后以毫秒为单位指定间隔时间。jstat将持续显示监控进程信息的快照。如果您希望jstat在终止前进行特定数量的快照,在间隔时间/时间值后指定该数字。
如果5756是几分钟前开始的运行SwingSet2程序的VMID,那么下列命令将告诉jstat每250毫秒为10个佚代执行一次gc快照转储,然后停止:
15. jstat -gc 5756 250 10
请注意Sun(现在的Oracle)保留了在不进行任何预先通知的情况下更改各种选项的输出甚至是选项本身的权利。这是使用不受支持实用程序的缺点。请参看Javadocs了解jstat输出中每一列的全部细节。
评论
另外,启动图形界面的Java程序用的javaw.exe、启动Java WebStart用的javaws.exe之类的也别漏掉撒
我勒个去。。不是草稿吗。。怎么发布了。
jvisualvm 我刚在看的时候 刚好看到了,玩耍了一下午感觉很爽。
哈哈~~~
哈哈哈哈你也遇到草稿泄漏门了 XDD
另外,启动图形界面的Java程序用的javaw.exe、启动Java WebStart用的javaws.exe之类的也别漏掉撒
javaw呢
诶呀,javaw我貌似没接触过,看看是干啥的~~~~
3q~~~
另外,启动图形界面的Java程序用的javaw.exe、启动Java WebStart用的javaws.exe之类的也别漏掉撒
我勒个去。。不是草稿吗。。怎么发布了。
jvisualvm 我刚在看的时候 刚好看到了,玩耍了一下午感觉很爽。
哈哈~~~
另外,启动图形界面的Java程序用的javaw.exe、启动Java WebStart用的javaws.exe之类的也别漏掉撒
javaw呢
另外,启动图形界面的Java程序用的javaw.exe、启动Java WebStart用的javaws.exe之类的也别漏掉撒
发表评论
-
2013年技术愿望目标
2013-01-07 23:25 0一: 读源码 1:jetty 2:webx,spr ... -
jetty的http协议解析
2012-07-31 23:59 0上篇文章讲到:jetty的connection解析到hand ... -
jetty源码阅读之connection解析到handler调用
2012-07-29 21:58 0前言: 想要处理用户发出的http请求,首先得获得连接 ... -
jetty源码阅读之connector
2012-07-29 14:56 0AbstractConnector @Overr ... -
定时执行Timer的源码阅读
2012-02-22 18:51 1756Timer的实现原理: 1:timer简介; ... -
jetty翻译
2011-09-06 23:50 0异步等待 异 ... -
【转】mysql Host is blocked error错误解决方案
2011-08-01 14:40 3002Host is blocked because of ma ... -
java按值传递
2011-06-28 23:13 0来看看代码 packag ... -
【无聊的笔记】将数字转换为中文读法
2011-06-05 15:43 6324将阿拉伯数字的数变成我们常用的中文读法, 比如说: 1 ... -
用mina网络传输使用ObjectSerializationCodecFactory一个小注意点
2011-04-05 18:18 8773背景: 之前的 一篇介绍mina的博客中,提到通过mi ... -
jboss下的war包的context映射配置
2011-02-10 17:19 0一般web容器都可以在 deploy 目录下放多个war包, ... -
maven war plugin 的filter 配置。
2011-02-10 17:14 0具体可以参考,maven的官方配置。 http://m ... -
【why系列】内部类为什么访问外围内需要用final
2011-01-10 13:16 011111111111111 -
【why系列】为什么序列化要实现一个空接口Serializable
2010-12-25 22:16 0啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊 -
【why系列】为什么说java是不可变的对象
2010-12-25 22:15 0啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊 package ... -
java线程总结
2010-12-23 15:25 01:java启动一个线程,会为每一个线程,分配一个 ... -
【监控】通过jmx获得系统的gc,内存情况
2010-11-27 21:52 6296通过jmx访问jvm知道的Mbean的一些信息,可以取得系统运 ... -
自动动手写原生态jmx,MbeanInfo,invoke
2010-11-16 22:07 2087使用jmx的东东主要包括下面几个步骤了: 发布j ... -
用spring连接jmx
2010-11-14 18:20 1846接着上一篇 “原生态连接jmx”的例子。 上一篇中,发 ... -
采用hudson跟踪代码质量:单元测试和findbug报表
2010-10-31 22:17 0hu
相关推荐
Java虚拟机移植知识点分析: 一、软件移植概述: 软件移植是将软件从一种环境移植到另一种环境,通常涉及到操作系统或硬件平台的变化。在这个过程中,需要处理平台依赖性问题,可能需要修改源代码以适应新环境的...
以上知识点涵盖了IBM SPSS Java插件的基本使用方法,包括如何导入必要的类库、启动SPSS处理器、执行统计命令、处理异常、命令调试以及获取数据字典信息等重要开发操作。文档通过Java示例代码向开发者展示了一个完整...
压缩包里面的笔记是自己整理的视频中的大部分运行命令,请知晓。如有疑问可以私信,谢谢。项目采用SpringCloudAlibaba技术栈。由业务集群系统+后台管理系统构成,打通了微服务分布式开发及全栈开发技能,包含前后...
说明一下,压缩包里面的笔记是自己整理的视频中的大部分运行命令,请知晓。如有疑问可以私信,谢谢。包含初级篇完整代码和高级篇完整代码,后台系统vue代码,sql文件(在基础篇资料源码中)。官网基础篇和高级篇资料...
# 压缩文件中包含: 中文-英文对照文档 jar包下载地址 Maven依赖 Gradle依赖 源代码下载地址 # 本文件关键字: jar中文-英文对照文档.zip,java,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,中文API文档,手册,开发手册,使用手册,参考手册 # 使用方法: 解压最外层zip,再解压其中的zip包,双击 【index.html】 文件,即可用浏览器打开、进行查看。 # 特殊说明: ·本文档为人性化翻译,精心制作,请放心使用。 ·只翻译了该翻译的内容,如:注释、说明、描述、用法讲解 等; ·不该翻译的内容保持原样,如:类名、方法名、包名、类型、关键字、代码 等。 # 温馨提示: (1)为了防止解压后路径太长导致浏览器无法打开,推荐在解压时选择“解压到当前文件夹”(放心,自带文件夹,文件不会散落一地); (2)有时,一套Java组件会有多个jar,所以在下载前,请仔细阅读本篇描述,以确保这就是你需要的文件;
C接口函数参考手册样本.doc
scratch少儿编程逻辑思维游戏源码-小小王国.zip
mysql全国区域代码表3级
scratch少儿编程逻辑思维游戏源码-我的世界 地牢通关.zip
# 压缩文件中包含: 中文-英文对照文档 jar包下载地址 Maven依赖 Gradle依赖 源代码下载地址 # 本文件关键字: jar中文-英文对照文档.zip,java,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,中文API文档,手册,开发手册,使用手册,参考手册 # 使用方法: 解压最外层zip,再解压其中的zip包,双击 【index.html】 文件,即可用浏览器打开、进行查看。 # 特殊说明: ·本文档为人性化翻译,精心制作,请放心使用。 ·只翻译了该翻译的内容,如:注释、说明、描述、用法讲解 等; ·不该翻译的内容保持原样,如:类名、方法名、包名、类型、关键字、代码 等。 # 温馨提示: (1)为了防止解压后路径太长导致浏览器无法打开,推荐在解压时选择“解压到当前文件夹”(放心,自带文件夹,文件不会散落一地); (2)有时,一套Java组件会有多个jar,所以在下载前,请仔细阅读本篇描述,以确保这就是你需要的文件;
两个医院随访的抗抑郁药使用后主诉情况
一个轻量级、可移植的纯 NES 仿真器库
# 压缩文件中包含: 中文文档 jar包下载地址 Maven依赖 Gradle依赖 源代码下载地址 # 本文件关键字: jar中文文档.zip,java,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,中文API文档,手册,开发手册,使用手册,参考手册 # 使用方法: 解压最外层zip,再解压其中的zip包,双击 【index.html】 文件,即可用浏览器打开、进行查看。 # 特殊说明: ·本文档为人性化翻译,精心制作,请放心使用。 ·只翻译了该翻译的内容,如:注释、说明、描述、用法讲解 等; ·不该翻译的内容保持原样,如:类名、方法名、包名、类型、关键字、代码 等。 # 温馨提示: (1)为了防止解压后路径太长导致浏览器无法打开,推荐在解压时选择“解压到当前文件夹”(放心,自带文件夹,文件不会散落一地); (2)有时,一套Java组件会有多个jar,所以在下载前,请仔细阅读本篇描述,以确保这就是你需要的文件;
# 压缩文件中包含: 中文-英文对照文档 jar包下载地址 Maven依赖 Gradle依赖 源代码下载地址 # 本文件关键字: jar中文-英文对照文档.zip,java,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,中文API文档,手册,开发手册,使用手册,参考手册 # 使用方法: 解压最外层zip,再解压其中的zip包,双击 【index.html】 文件,即可用浏览器打开、进行查看。 # 特殊说明: ·本文档为人性化翻译,精心制作,请放心使用。 ·只翻译了该翻译的内容,如:注释、说明、描述、用法讲解 等; ·不该翻译的内容保持原样,如:类名、方法名、包名、类型、关键字、代码 等。 # 温馨提示: (1)为了防止解压后路径太长导致浏览器无法打开,推荐在解压时选择“解压到当前文件夹”(放心,自带文件夹,文件不会散落一地); (2)有时,一套Java组件会有多个jar,所以在下载前,请仔细阅读本篇描述,以确保这就是你需要的文件;
scratch少儿编程逻辑思维游戏源码-像素猫3.zip
内容概要:本文深入探讨了自来水厂水处理系统的自动化解决方案,重点介绍了WinCC组态软件和西门子300PLC程序的具体应用。文中首先简述了自来水厂作为城市供水系统核心的作用,随后详细讲解了WinCC组态软件在实时监控和控制方面的功能,以及西门子300PLC在数据处理、控制逻辑和通信等方面的关键角色。接着,文章具体阐述了水源采集与处理、水质检测与监控、自动化控制系统三个主要环节的技术实现方式。最后,强调了西门子PLC技术在提高生产效率、实时监控与预警、优化生产流程等方面的优势。 适合人群:从事工业自动化领域的工程师和技术人员,尤其是关注水处理行业的专业人士。 使用场景及目标:适用于希望深入了解自来水厂自动化控制系统的读者,旨在帮助他们掌握WinCC组态和西门子300PLC的实际应用方法,提升水处理系统的运行效率和安全性。 其他说明:本文不仅提供了理论知识,还结合实际案例进行了解析,有助于读者更好地理解和应用相关技术。
内容概要:本文介绍了三菱PLC FX2N源码V9.x版与STM32工控板的结合,展示了其强大功能和应用场景。三菱PLC FX2N源码提供清晰的程序架构和详细的注释,支持多种指令如DECO、ENCO、SEGD,并优化了RTC时间功能。STM32工控板则支持2路高速脉冲输出、2路外部脉冲输入、2路485 Modbus RTU主从机模式等功能。两者结合为工业控制带来了更高的性能和更多样化的功能。 适合人群:从事工业自动化领域的工程师和技术人员,尤其是对三菱PLC和STM32有研究兴趣的人群。 使用场景及目标:适用于需要高效、稳定工业控制系统的设计和开发,旨在提升工业设备的精确控制能力,提高生产效率和质量。 其他说明:文中提到的具体功能和特性有助于开发者更好地理解和应用三菱PLC FX2N源码与STM32工控板的结合,推动工业自动化的发展。
内容概要:本文深入探讨了三相下垂双逆变器同步并联控制技术,重点介绍了下垂控制的基本原理及其在微电网中的应用。文章详细解释了下垂控制如何通过调整频率和电压幅值来实现负载的自动分配,并讨论了在多台逆变器并联时可能出现的环流问题以及解决方案,如虚拟阻抗法。此外,还介绍了同步环节的关键技术,特别是改进型锁相环的应用,并提供了具体的实现代码示例。最后,文章分享了一些实用的调试技巧和经验,强调了参数整定的重要性。 适用人群:从事电力电子、微电网控制领域的研究人员和技术人员。 使用场景及目标:适用于希望深入了解三相下垂双逆变器同步并联控制技术的工程师和科研人员,旨在帮助他们掌握核心技术,解决实际工程中的问题。 其他说明:文中提供的代码示例和调试方法有助于读者更好地理解和应用相关技术,提高系统的稳定性和性能。
Google Python Style
# 压缩文件中包含: 中文-英文对照文档 jar包下载地址 Maven依赖 Gradle依赖 源代码下载地址 # 本文件关键字: jar中文-英文对照文档.zip,java,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,中文API文档,手册,开发手册,使用手册,参考手册 # 使用方法: 解压最外层zip,再解压其中的zip包,双击 【index.html】 文件,即可用浏览器打开、进行查看。 # 特殊说明: ·本文档为人性化翻译,精心制作,请放心使用。 ·只翻译了该翻译的内容,如:注释、说明、描述、用法讲解 等; ·不该翻译的内容保持原样,如:类名、方法名、包名、类型、关键字、代码 等。 # 温馨提示: (1)为了防止解压后路径太长导致浏览器无法打开,推荐在解压时选择“解压到当前文件夹”(放心,自带文件夹,文件不会散落一地); (2)有时,一套Java组件会有多个jar,所以在下载前,请仔细阅读本篇描述,以确保这就是你需要的文件;