JVM
meixiangnila
这个作者很懒,什么都没留下…
展开
-
使用Memory Analyzer tool 检测OutofMemory异常
1.插件Memory Analyzer tool 的详细安装参考如下网址: http://blog.csdn.net/yhc13429826359/article/details/7711911 2.我这次发生错误的程序代码如下: public static void readLogBufferRead(String logPath){ BufferedReader bufferRea...原创 2012-11-19 20:12:46 · 154 阅读 · 0 评论 -
liunx下面查看cpu过高的系统调用
2. 找出消耗资源最高的线程 top -H -p 24138 可以不用第一步,直接执行命令 top -H ,就可以查看到消耗资源最高的线程 top - 09:49:49 up 70 days, 16:41, 2 users, load average: 1.01, 1.04, 1.00 Tasks: 72 total, 1 running, 71 sleeping, ...原创 2017-08-01 16:45:58 · 765 阅读 · 0 评论 -
jstack的用法(2)
stack出来的线程的含义如下: prio:线程的优先级 tid:线程id nid:操作系统映射的线程id, 非常关键,后面再使用jstack时补充; 1103e9000 106692000 :表示线程栈的起始地址。 ...原创 2017-05-05 11:27:00 · 141 阅读 · 0 评论 -
jstack的用法(1)
jstack is a really helpful utility that comes standard with most linux JDK versions. It allows you to generate java thread dumps in situations where kill -3 won't work. kill -3 (aka kill -QUIT) will d...原创 2017-05-05 11:20:34 · 270 阅读 · 0 评论 -
linux下查看某个线程的问题
背景: 运行测试程序后,top命令发现某个进程(pid)占用cpu达到100%。 查看哪个线程占用最多资源: ps mp pid -o THREAD,tid,命令查看这个进程下面的所有线程占用情况。 发现线程324占用最多。 使用jstack进行跟踪: jstack pid 进行查看输出到临时文件 jstack 323 > test 将刚刚发...原创 2017-05-05 10:44:09 · 495 阅读 · 0 评论 -
java如何debug具体的jna加载路径
待补充XXX原创 2017-03-21 16:09:29 · 707 阅读 · 1 评论 -
jmap,jhat分析内存(转)
分析JAVA Application的内存使用时,jmap是一个很实用的轻量级工具。使用jmap可以查看heap空间的概要情况,粗略的掌握heap的使用情况。也可以生成heapdump文件,再使用jhat通过web浏览器具体分析内容中的对象和数据。 ----------------------------------------------------------------------...原创 2013-10-11 18:02:59 · 271 阅读 · 0 评论 -
java的垃圾收集算法和垃圾收集器
1.垃圾回收算法 1.1标记-清除 该算法主要分为标记和清除两个阶段,先对需要回收的对象进行标记,然后再进行清除,该算法的有点是简单,缺点有两个,一个是效率问题,标记和清除的效率都不高,另一个问题是空间问题,标记清除之后会造成大量的空间碎片,当程序需要分配一个大对象而无法找到连续的空间时就必须出发一次垃圾回收。 1.2复制算法 该算法是将内存空间分为大小相等的两块,在其中...2012-09-24 11:57:14 · 68 阅读 · 0 评论 -
jvm如何判断对象已死?
在java的垃圾回收中,jvm是如何判断堆中的对象是否已死呢?主流的判断方法有两种。 1.引用计数算法: 这种算法的思路是如果某一个对象被别的对象引用,那么就把他们引用计数器加上1,这样当进行垃圾回收时如何判断该引用的数量为0,此时就代表没有进行任何对象对其进行引用,这种方法判断效率很高,在很多情况下是个不错的选择,例如微软的COM,AS3的FlashPlayer,Python语言等都是采...2012-09-24 10:56:51 · 199 阅读 · 0 评论 -
jvm垃圾回收
在jvm中堆空间划分为三个代:年轻代(Young Generation)、年老代(Old Generation)和永久代(Permanent Generation)。年轻代和年老代是存储动态产生的对象。永久带主要是存储的是java的类信息,包括解析得到的方法、属性、字段等等。永久带基本不参与垃圾回收。我们这里讨论的垃圾回收主要是针对年轻代和年老代。具体如下图。 年轻代又分成3...原创 2012-09-24 10:05:48 · 70 阅读 · 0 评论 -
Java内存区域和内存溢出异常(1)
1.首先java的运行时存储区域大致分为:java堆,虚拟机栈,本地方法栈,方法区,程序计数器这几个区域,下面对这几块区域的存储信息和可能抛出的异常进行分析。 1>程序计数器。 这个区域主要是用来标识字符码执行时候的行号指示器。如果正在执行的是java方法,那么此时这个指令代表字符码的地址,如果执行的是native方法,那么此时该值为空(Undefine),这个区域是线程私有的,也...2012-09-19 14:41:30 · 78 阅读 · 0 评论 -
bheapsampler等同于MAT
http://dr-brenschede.de/bheapsampler/原创 2017-08-04 11:46:46 · 168 阅读 · 0 评论