- 浏览: 209477 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (391)
- java (18)
- python (3)
- ruby (4)
- linux (48)
- 网络 (9)
- 前端 (2)
- 社会、文化、哲学、人生、百态 (0)
- 工具 (10)
- 下载 (0)
- 常用地址 (0)
- tracert (0)
- mysql (8)
- 开源相关收藏 (1)
- 模块查看依懒 (1)
- watch使用 (1)
- Tcpdump (2)
- easy_install安装 (1)
- 构造redis批量删除脚本 (1)
- MYSQL 性能测试 (1)
- JAVA code encode utf-8 (1)
- linux nginx awk 实时 每妙 (1)
- mkpasswd (1)
- spring security oauth (1)
- jmap dump java memory Analyzer (1)
- JAVA DUMP (1)
- swap linux 过高 解决 (1)
- SWAP (1)
- jmap jstat jstack dump (1)
- java jconsole 的使用 (1)
- git 常用 (1)
- MYSQL 索引 动态 唯一 (1)
- TCP 三次握手 四次挥手 (1)
- linux date (1)
- 删除 空行 注释行 (1)
- maven3 yum linux install repository (1)
- linux git 搭建 (1)
- linux sar eth1 查看 流量 (1)
- sar (1)
- netstat ip 过滤 常用脚本 (1)
- Tcpdump 包分析网络连接过程 (1)
- net ipv4 tcp time wait tw recycle (0)
- /etc/sysctl.conf linux 网络 配置 (1)
- ss 网络连接查看 (比netstat 快很多,实时性牺牲) (1)
- MYSQL 关键字 (1)
- Linux 下多核CPU知识 (1)
- top (1)
- 令牌 证书 (1)
- mysql unix timestamp (1)
- 端口扫描 nc nmap (1)
- 204 http code 状态码 (1)
- ss -s ss -l (1)
- linux 常用 curl (1)
- linux sed 替换 换行 (1)
- centos yum install rpm install (1)
- spring-mvc源码解读 (1)
- 使用iftop查看实时的网络流量 (0)
- linux 命令 expect (1)
- HTTP (1)
- openssl ddif 加密 (1)
- iptables 详解 (1)
- python 虚拟化 VirtualEnv virtualenvwrapper (1)
- nginx (2)
- more less 实用技巧 (1)
- linux nginx (2)
- linux curl https ssl 证书 ca (1)
- openssl (1)
- php mysql linux (1)
- linux 虚拟机 虚拟 xen (0)
- linux 虚拟机 虚拟 xen kvm (1)
- linux perl 单行执行技巧 (1)
- mysql 查看库占用空间 表查用空间 (1)
- linux tcpdump (1)
- maven (1)
- sun.misc.Unsafe (1)
- OpenSSL生成证书 (1)
- http://blog.csdn.net/zzulp/article/details/8018751 (1)
- maven 本地 jar dependency (1)
- 计算JAVA代码行数最简单命令 sed (1)
- 常用的证书格式转换 rsa eg (1)
- 加密 解密 签名 (1)
- 分析jar包冲突 (1)
- 使用JMockit编写java单元测试 (1)
- Linux 技巧:让进程在后台可靠运行的几种方法 (1)
- 环境变量控制 (1)
- 5+ 个 tar 命令的用法,附示例 (1)
- scp自动输入密码 (1)
- ps axo pid (1)
- ppid (1)
- comm (1)
- pmem (1)
- lstart|grep mysql (0)
- lstart (1)
- etime|grep mysql (1)
- UML类图字少好理解 (1)
- HTTP经典文章 (1)
- git (1)
- Git常用命令 (1)
- LINUX 系统被攻击的分析过程 (1)
- NIO (1)
- LINUX 操作快捷键使用 (1)
- openSSL命令、PKI、CA、SSL证书原理 (1)
- shell (2)
- 转载 (1)
- mysqldump 可以直接dump->xml (1)
- VIM比较全面的文章 (1)
- eclipse regex 正则表达式 (1)
- synchronized (1)
- 锁 (1)
- java 正则表达式 regex (1)
- Reference Queue 引用 源码 (1)
- spring aop 源码 分析 (1)
- java @Cache @Transaction 注解 (1)
- spring aop (1)
- spring jdk proxy cglib 动态代理 性能比较 (1)
- spring proxy private public 代理限制 (1)
- spring transaction aop 事务 (1)
- spring autowire 注解注入 (1)
- 桥接 NAT NAT地址转换 内部网络 虚拟网络 (1)
- spring-web-mvc 源码解读 之 RequestMappingHandlerMapping (1)
- find atime mtime ctime -n n +n (1)
- android studio 快捷键初探 (1)
- android 源码阅读的计划 (1)
- 计算机网络学习-VLAN (1)
- sed 高级 合并行 (1)
- CAP 一致性 可用性 分布式容错性 (1)
- android lib so 库文件 (0)
- android lib so 库文件 移植 (1)
- android 不错的博文 (1)
- sourceinsight 源码 阅读 (1)
- Android Tab UI (1)
- 诗 (1)
- mysql 批处理 (0)
- netty 堆外内存 DirectByteBuffer (1)
- netty 并发 百万 推送 (1)
- Linux操作系统中内存buffer和cache的区别 (1)
- maven intellij target bytecode version (1)
- linux sleep()的实现原理 (1)
- android (2)
- javadoc 代码注释规范 (1)
- spring 自动注入bean auto (1)
- Photoshop CS6常用快捷键 (1)
- 股票 数据 机器 分析 (1)
- 批处理 (1)
- mysql -e (1)
- char (1)
- Unicode (1)
- 编码 (1)
- utf8 (1)
- utf-8 (1)
- utf16 (1)
- utf-16 (1)
- IntelliJ IDEA (1)
- ide (1)
- idea (1)
- intellij (1)
- 文件 (1)
- 目录 (1)
- 源代码 (1)
- CountDownLatch (1)
- CyclicBarrier (1)
- Semaphore (1)
- spring (1)
- linux 查看不同进制文件 (1)
- WebMvcConfigurationSupport (1)
- sdkman工具的使用 (1)
- http header (1)
- LINUX系统优化 (1)
最新评论
-
gelongmei:
威武我大酒神
shell脚本不换行刷新数据
jmap -histo pid [实体化情况]
jstat -gcutil -h5 `jps|grep XmlConfiguration|awk '{print $1}'` 1000
jstat -gccause -h 10 22269 1000
jstat -gcutil -h5 pid miliseconds
jmap -heap -pid
jstack pid
jmap -dump:format=b,file=/home/jetty/logs/heap.bin pid
jmap -dump:live,format=b,file=/home/jetty/logs/heap.bin pid
今天要处理项目下的一个内存泄露的问题。
使用了jprobe 工具,在测试环境反复调试不能发现问题的原因。
最后使用jdk自带的jps jmap jstat 等工具顺利的查找到了内存泄露的原因。
下面对jdk自带的jps jmap jstat工具总结介绍一下,希望以后同道中人google一下,找到这篇文章对大家有所帮助。
尽量介绍的简明扼要,如果需要最详细的参考请翻阅jdk doc tools部分,如果有什么疑问请留言。
jps:
相当于linux下的ps,列出所有java相关线程的pid等信息
example:
[tdwiki@installed-host-eth0 ~]$ jps
18861 Bootstrap
1418 Jps
jmap:
显示java进程内存使用的相关信息
jmap pid 打印内存使用的摘要信息
jmap -histo pid >mem.txt 打印比较简单的各个有多少个对象占了多少内存的信息,一般重定向的文件
jmap -dump:format=b,file= mem.dat pid 将内存使用的详细情况输出到mem.dat 文件
用jhat命令可以参看 jhat -port 7000 mem.dat
在浏览器中访问:http://10.5.22.65:7000/ 查看详细信息
jstat:
显示java虚拟机的一些统计信息
jstat -选项 pid 间隔显示时间 显示次数
jstat -gc 18861 250 10
jstat -gccapacity 18861 250 10
jstat -gcnew 18861 250 10
jstat -gcnewcapacity 18861 250 10
jstat -gcold 18861 250 10
我的调试流程
内存泄漏一般都是有一定特征的,任何代码和数据都要占用内存,我简单总结内存泄漏的特征是内存占用不可控制,GC不可回收。我追踪内存使用量的曲线发现一些特征,在估计虚拟机即将崩溃时,使用 jmap -histo pid >mem.txt 发现相关内存泄漏的对象占用非常打比例的内存空间,然后很容易猜测问题大概的位置,一下子就解决了。
jstat -gcutil -h5 `jps|grep XmlConfiguration|awk '{print $1}'` 1000
jstat -gccause -h 10 22269 1000
jstat -gcutil -h5 pid miliseconds
jmap -heap -pid
jstack pid
jmap -dump:format=b,file=/home/jetty/logs/heap.bin pid
jmap -dump:live,format=b,file=/home/jetty/logs/heap.bin pid
今天要处理项目下的一个内存泄露的问题。
使用了jprobe 工具,在测试环境反复调试不能发现问题的原因。
最后使用jdk自带的jps jmap jstat 等工具顺利的查找到了内存泄露的原因。
下面对jdk自带的jps jmap jstat工具总结介绍一下,希望以后同道中人google一下,找到这篇文章对大家有所帮助。
尽量介绍的简明扼要,如果需要最详细的参考请翻阅jdk doc tools部分,如果有什么疑问请留言。
jps:
相当于linux下的ps,列出所有java相关线程的pid等信息
example:
[tdwiki@installed-host-eth0 ~]$ jps
18861 Bootstrap
1418 Jps
jmap:
显示java进程内存使用的相关信息
jmap pid 打印内存使用的摘要信息
jmap -histo pid >mem.txt 打印比较简单的各个有多少个对象占了多少内存的信息,一般重定向的文件
jmap -dump:format=b,file= mem.dat pid 将内存使用的详细情况输出到mem.dat 文件
用jhat命令可以参看 jhat -port 7000 mem.dat
在浏览器中访问:http://10.5.22.65:7000/ 查看详细信息
jstat:
显示java虚拟机的一些统计信息
jstat -选项 pid 间隔显示时间 显示次数
jstat -gc 18861 250 10
jstat -gccapacity 18861 250 10
jstat -gcnew 18861 250 10
jstat -gcnewcapacity 18861 250 10
jstat -gcold 18861 250 10
我的调试流程
内存泄漏一般都是有一定特征的,任何代码和数据都要占用内存,我简单总结内存泄漏的特征是内存占用不可控制,GC不可回收。我追踪内存使用量的曲线发现一些特征,在估计虚拟机即将崩溃时,使用 jmap -histo pid >mem.txt 发现相关内存泄漏的对象占用非常打比例的内存空间,然后很容易猜测问题大概的位置,一下子就解决了。
发表评论
-
代码沉淀
2018-01-17 10:08 5461、如果一个代码片段是抽象的,那意味着它是可以有多种实现的,那 ... -
java.nio.file.StandardOpenOption
2018-01-04 11:19 845java.nio.file.StandardOpenOptio ... -
char类型与Unicode编码
2017-12-27 17:12 545char类型与Unicode编码 Unicode(UTF-8, ... -
javadoc 规范
2017-03-06 13:12 501http://www.cnblogs.com/felix-/ ... -
Java Socket 几个重要的TCP/IP选项解析
2015-12-15 17:02 527http://elf8848.iteye.com/blog/1 ... -
ReentrantLock可重入锁的使用场景
2015-05-05 13:45 567JAVA锁 从使用场景的角度出发来介绍对ReentrantLo ... -
Java ClassLoader详解
2015-04-07 16:27 491http://xjtom78.iteye.com/blog/8 ... -
sun.misc.Unsafe
2015-03-02 16:38 418http://www.cnblogs.com/tianchi/ ... -
JVM参数设置、分析
2014-12-01 19:11 0转自http://itlab.idcquan.com/Java ... -
jstat 详细使用
2014-07-16 10:01 642jstat分析VM内存 from:ht ... -
JavaWeb的各种中文乱码终极解决方法
2014-06-12 17:16 521一、Servlet输出乱码 1. 用servlet.getOu ... -
scala环境
2014-06-10 19:05 467http://download.scala-ide.org/e ... -
sonar忽略
2014-06-10 16:54 1156<properties> <aider. ... -
java AES 命令行 报错处理
2014-04-01 11:24 561java.security.NoSuchAlgorithmEx ... -
JVM内核参数说明
2014-03-12 02:14 549java虽然是自动回收内存,但是应用程序,尤其服务器程序最好根 ... -
jmap常用
2014-02-14 17:02 426SYNOPSIS jmap [ option ] pid ... -
JAVA GC详细说明
2014-01-06 13:54 4191.java中GC 即垃圾收集机制是指jvm用于释放那 ... -
JAVA中的GC
2014-01-03 20:34 01.java中GC 即垃圾收集机制是指jvm用于释放那 ... -
JAVA GC详细说明
2014-01-03 20:32 0http://www.360doc.com/content/1 ... -
分析包冲突命令
2013-12-31 16:43 409分析jar包冲突 ls|awk '{a=system(&quo ...
相关推荐
Android系统基于Linux内核,因此支持使用Linux命令行工具,即shell命令。这些命令提供了对系统资源的直接操作能力,如创建、删除文件,管理进程等。然而,由于Android的安全模型,应用通常不能直接在用户界面下执行...
在IT行业中,网络通信是至关重要的一个领域,而"ping"命令则是网络诊断最常用的工具之一。这个项目名为"Java实现ping功能",它利用Java编程语言,结合Spring Boot、Thymeleaf和Maven等技术,实现了类似操作系统内置...
原生Demo通常是指不依赖第三方API或接口,直接利用Java语言底层的通信机制来实现PLC通讯。这可能涉及到直接操作串口,设置波特率、数据位、停止位、校验位等参数,然后发送和接收二进制数据。原生Demo的编写需要对...
反编译是将字节码还原为接近原生的源代码的过程,常用工具有JD-GUI,它是一款直观的Java反编译器。然而,当这些.class文件中包含中文字符时,如果没有正确处理编码,可能会出现中文乱码的问题。本文将详细介绍如何...
SimpleCache 是一个简单易用的java缓存工具,用来简化缓存代码的编写,让你摆脱单调乏味的重复工作!1. 完全透明的缓存支持,对业务代码零侵入 2. 支持使用Redis和Memcached作为后端缓存。3. 支持缓存数据分区规则的...
SimpleCache 是一个简单易用的java缓存工具,用来简化缓存代码的编写,让你摆脱单调乏味的重复工作!1. 完全透明的缓存支持,对业务代码零侵入 2. 支持使用Redis和Memcached作为后端缓存。3. 支持缓存数据分区规则的...
SimpleCache 是一个简单易用的java缓存工具,用来简化缓存代码的编写,让你摆脱单调乏味的重复工作!1. 完全透明的缓存支持,对业务代码零侵入 2. 支持使用Redis和Memcached作为后端缓存。3. 支持缓存数据分区规则的...
SimpleCache 是一个简单易用的java缓存工具,用来简化缓存代码的编写,让你摆脱单调乏味的重复工作!1. 完全透明的缓存支持,对业务代码零侵入 2. 支持使用Redis和Memcached作为后端缓存。3. 支持缓存数据分区规则的...
SimpleCache 是一个简单易用的java缓存工具,用来简化缓存代码的编写,让你摆脱单调乏味的重复工作!1. 完全透明的缓存支持,对业务代码零侵入 2. 支持使用Redis和Memcached作为后端缓存。3. 支持缓存数据分区规则的...
SimpleCache 是一个简单易用的java缓存工具,用来简化缓存代码的编写,让你摆脱单调乏味的重复工作!1. 完全透明的缓存支持,对业务代码零侵入 2. 支持使用Redis和Memcached作为后端缓存。3. 支持缓存数据分区规则的...
SimpleCache 是一个简单易用的java缓存工具,用来简化缓存代码的编写,让你摆脱单调乏味的重复工作!1. 完全透明的缓存支持,对业务代码零侵入 2. 支持使用Redis和Memcached作为后端缓存。3. 支持缓存数据分区规则的...
在本案例中,开发者使用了Java的Swing库来构建图形用户界面(GUI),这是一种常用的Java GUI工具包,提供了丰富的组件和布局管理器,用于创建桌面应用程序。 首先,SwingGUI是Java AWT(抽象窗口工具包)的扩展,它...
SimpleCache 是一个简单易用的java缓存工具,用来简化缓存代码的编写,让你摆脱单调乏味的重复工作!1. 完全透明的缓存支持,对业务代码零侵入 2. 支持使用Redis和Memcached作为后端缓存。3. 支持缓存数据分区规则的...
SimpleCache 是一个简单易用的java缓存工具,用来简化缓存代码的编写,让你摆脱单调乏味的重复工作!1. 完全透明的缓存支持,对业务代码零侵入 2. 支持使用Redis和Memcached作为后端缓存。3. 支持缓存数据分区规则的...
SimpleCache 是一个简单易用的java缓存工具,用来简化缓存代码的编写,让你摆脱单调乏味的重复工作!1. 完全透明的缓存支持,对业务代码零侵入 2. 支持使用Redis和Memcached作为后端缓存。3. 支持缓存数据分区规则的...
4. **菜单和工具栏**:在JavaFX中,可以使用`MenuBar`和`ToolBar`类来创建菜单和工具栏,它们通常包含各种命令,如新建、打开、关闭、保存等。 5. **JNI调用**:如果需要实现更复杂的Windows功能,例如访问剪贴板、...
7. **常用命令** - `javac`:编译Java源文件。 - `java`:运行已编译的Java类。 - `jar`:打包Java应用为.jar文件,便于分发和运行。 - `javadoc`:生成Java源代码的API文档。 这些只是《Core Java》中的一...
运行JAR文件,可以通过Java的`java -jar`命令,指定MANIFEST.MF中的`Main-Class`属性来执行主类。 接下来,我们探讨一下可能包含在"常用JAR包"中的几个关键库: 1. **Apache Commons**: Apache Commons 是一系列...
Java面试题62.linux常用命令 Java面试题63:怎么操作linux服务器 Java面试题64:有没有使用过云主机 Java面试题65:数据库优化方面的事情 Java面试题66:如果查询和定位慢查询 Java面试题67:数据库优化之数据库表...