s****y 发帖数: 503 | 1 GC经常运行的原因可能是memory leak,常见的原因有哪些呢?比如没有释放数据源等
资源,还有其他的吗? |
l**********n 发帖数: 8443 | 2 classloader, static fields, threadlocal ref
【在 s****y 的大作中提到】 : GC经常运行的原因可能是memory leak,常见的原因有哪些呢?比如没有释放数据源等 : 资源,还有其他的吗?
|
s****y 发帖数: 503 | 3 classloader, threadlocal ref指的是什么? |
l**********n 发帖数: 8443 | 4 they are all gc root. a single object ref leak will hold on its class, then
the classloader, then all the classes it loaded.
【在 s****y 的大作中提到】 : classloader, threadlocal ref指的是什么?
|
d******e 发帖数: 2265 | 5 usually a collection like hashtable, for example as a cache. otherwise, it
is impossible to leak.
【在 s****y 的大作中提到】 : GC经常运行的原因可能是memory leak,常见的原因有哪些呢?比如没有释放数据源等 : 资源,还有其他的吗?
|
g*****g 发帖数: 34805 | |
z*******3 发帖数: 13709 | 7 最常见的原因就是objects的内存没有被释放
一开始应该想想为什么会有这么多objects
其次为什么这么多objects没有被gc回收
想办法reuse obejcts,然后才是增加heap size
最后才去考虑是不是有memory leak之类的 |
m***i 发帖数: 213 | 8 没错,其实就一个关键词:gc roots.
then
【在 l**********n 的大作中提到】 : they are all gc root. a single object ref leak will hold on its class, then : the classloader, then all the classes it loaded.
|
c*********e 发帖数: 16335 | 9 内存太小。现在多少内存?
【在 s****y 的大作中提到】 : GC经常运行的原因可能是memory leak,常见的原因有哪些呢?比如没有释放数据源等 : 资源,还有其他的吗?
|
S*******e 发帖数: 525 | 10 This is the only kind of memory leaks I experienced several times in XX
years of development in Java.
I also experienced a file handle leak (resource leak -- in fact socket
connection ) issue ( -- but it is from the third library httpunit,we used it
an application library, not just for unit tests). Suffered that problem
for a couple of years until a guy on the internet used visualVM or JProfiler
to catch the bug.
it
【在 d******e 的大作中提到】 : usually a collection like hashtable, for example as a cache. otherwise, it : is impossible to leak.
|
f*******n 发帖数: 12623 | 11 取决于你怎么定义memory leak。
如果你是说你无法reach的object,那在Java里面不可能,因为无法reach的object会被
garbage collect。
如果你是说你以后不会再用的object,那在Java里面有可能,只要你还留着一个
reference,Java怎么知道你以后会不会用?所以无法garbage collect。 |