应用服务器中ClassLoader有关内存的问题

近几天在比较系统时发现一个奇怪的现象,就是ClassLoader会hold住它所Load的大部分class,导致系统更新时,内存上涨,并且一直不降。

看了看sun的jdk文档(官网上),指明ClassLoader并不负责Class的unload,Class的unload依然取决于它的引用计数是否为0。

当一个AppClassLoader由于应用更新时,需要重新生成一个AppClassLoader时,原AppClassLoader加载的Class很可能不会释放,那是因为原AppClassLoader或者它所load起来的class可能被系统ClassLoader load起来的某些Class所引用。

如果碰到这种问题,只能通过一些profiler工具逐步检测了。

你可能感兴趣的:(jdk,应用服务器,ClassLoader,Class,sun,profiler)