由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
CS版 - 求教有没有好的查Java memory leak的工具? (转载)
相关主题
今天跟老板说不想读PHD,感觉大逆不道faint, unreachable statement in java
heap dump 请教
相关话题的讨论汇总
话题: java话题: memory话题: leak话题: gc话题: object
进入CS版参与讨论
1 (共1页)
q*******i
发帖数: 353
1
【 以下文字转载自 Java 讨论区 】
发信人: qqwuweiyi (娓娓), 信区: Java
标 题: 求教有没有好的查memory leak的工具?
发信站: BBS 未名空间站 (Sat May 22 17:47:56 2010, 美东)
在eclips运行环境下,主要是heap老是报out of memory,想查查程序哪里有memory
leak,希望能有分析到每个类应用heap的情况,谢谢
P***P
发帖数: 1387
2
valgrind
q*******i
发帖数: 353
3
谢谢,但是似乎这个主要查C,C++,有没有查java这方面比较好的工具?

【在 P***P 的大作中提到】
: valgrind
s*********m
发帖数: 2043
4
java也许要查这个吗?
不是自动回收的吗?

【在 q*******i 的大作中提到】
: 谢谢,但是似乎这个主要查C,C++,有没有查java这方面比较好的工具?
h******u
发帖数: 155
5
heap tracking的工具很多阿,Jprofiler,LeakHunter, jprobe,你看一下到底是什么
type的object一直没有释放。 我倒是有更好的research tool,可是不能release 呵呵
q*******i
发帖数: 353
6
我还想问一下JAVA所谓的memory leak是指应该释放但是没有释放的内存吧。那么是因
为JAVA的GC没有运行对还是什么?但是这个GC不是程序员可以控制的啊?

【在 h******u 的大作中提到】
: heap tracking的工具很多阿,Jprofiler,LeakHunter, jprobe,你看一下到底是什么
: type的object一直没有释放。 我倒是有更好的research tool,可是不能release 呵呵

q*******i
发帖数: 353
7
我用了一个分析eclipse的heap工具,发现应该是一个hashtable用string用的内存太多
了。不太明白如果一个object被GC remove了,那么它的retained object也会同样被GC
remove然后回收内存吗?还是可能出现它的retained object内存没有被回收而导致
leak?

【在 h******u 的大作中提到】
: heap tracking的工具很多阿,Jprofiler,LeakHunter, jprobe,你看一下到底是什么
: type的object一直没有释放。 我倒是有更好的research tool,可是不能release 呵呵

g*****g
发帖数: 34805
8
所有object是独立的,一个对象回收之后只是这个object指向的object ref count-1
而已。

GC

【在 q*******i 的大作中提到】
: 我用了一个分析eclipse的heap工具,发现应该是一个hashtable用string用的内存太多
: 了。不太明白如果一个object被GC remove了,那么它的retained object也会同样被GC
: remove然后回收内存吗?还是可能出现它的retained object内存没有被回收而导致
: leak?

h******u
发帖数: 155
9
1. Java memory leak不是真正techincal的memory leak(类似于 C/C++),并不是说
GC没有办法回收memory,而是很多时候programmer忘记及时release reference,以至于
不会再用的object还被 hold,所以导致GC无法 回收
2. GC工作原理是 reachability,一个object能不能被回收,完全决定于它是不是能从
一些roots 到达 (static fields, stack vars),如果没有办法到达,就是
unreachable了,就被回收掉了。但是如果原来 a.f reference在b, 你用完b,忘了把a
.f = null,b就一直reachable,一直没有办法被释放
3. String其实是一个很大的问题,通常会导致java 里面严重的memory问题。eclipse
里面的很多performance 问题实际上可以通过有效的strong 操作很好的避免。具体可
以看一下这些 tips
http://wiki.eclipse.org/Performance_Bloopers
P***P
发帖数: 1387
10
汗, 没看到是java版发过来的, 还奇怪怎么用eclipse编c++
因为java一般不考虑memory leak的, 不过你可以用valgrind启动你的java
用--smc-check=all选项
see http://valgrind.org/docs/manual/faq.html#faq.java

【在 q*******i 的大作中提到】
: 谢谢,但是似乎这个主要查C,C++,有没有查java这方面比较好的工具?
c*********s
发帖数: 85
11
sounds a little more like a java memory limit problem instead of a memory
leak
This page might give you something to try
http://blog.xam.dk/?p=58
1 (共1页)
进入CS版参与讨论
相关主题
今天跟老板说不想读PHD,感觉大逆不道faint, unreachable statement in java
heap dump 请教
相关话题的讨论汇总
话题: java话题: memory话题: leak话题: gc话题: object