`
iihero
  • 浏览: 254762 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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

阅读更多

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

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

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

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

分享到:
评论

相关推荐

    ClassLoader原理

    例如,我们可以创建一个网络ClassLoader,从远程服务器动态加载类,实现按需加载,减少内存占用。 总的来说,理解ClassLoader的工作原理对于提升Java编程的深度和解决实际问题非常有帮助,尤其是在处理类加载问题、...

    Tomcat 5.0.18 ClassLoader source code insight

    本文将围绕Tomcat 5.0.18版本的ClassLoader源码进行深入分析,旨在帮助读者了解其工作方式,提升对Java应用服务器的理解。 首先,我们要明确ClassLoader在Java中的作用。ClassLoader负责加载Java类到JVM中,使得...

    web_classloader_test.zip_web classloader

    在Java Web应用中,类加载...通过分析`web_classloader_test`,我们可以学习到如何理解和调试Web应用的类加载问题,以及如何利用类加载器的特性来实现特定的功能。这个示例对于理解Java Web应用的运行机制非常有价值。

    Java ClassLoader原理

    例如,在Web应用中,通常只有当用户访问特定URL时才加载相关的Servlet或JSP页面。 #### 类型安全链接(Type-Safe Linkage) 为了确保动态加载的类与已加载的类之间能够正确地交互,Java虚拟机必须执行一系列的链接...

    Tomcat研究之ClassLoader.pdf

    3. **WebApp ClassLoader的特殊性**:在WebApp ClassLoader中,如果在自己的类路径中找不到类,则会尝试从Shared ClassLoader中加载,再依次向上委托给Catalina ClassLoader、Common ClassLoader直至System ...

    ava的ClassLoader介绍.doc

    Java的ClassLoader是Java虚拟机(JVM)的重要组成部分,它负责加载类到内存中以便执行。不同于C或C++程序,Java程序由多个独立的类文件组成,每个文件对应一个Java类。ClassLoader的工作机制允许Java程序在运行时...

    [浅析J2EE应用服务器的JAVA类装载器]python回朔异常的模块.docx

    Java类装载器机制是Java语言灵活性的关键组成部分,尤其在J2EE应用服务器中扮演着重要角色。理解这一机制有助于开发者更好地部署和管理应用程序,解决可能出现的部署问题。 Java类装载器是Java虚拟机(JVM)的一...

    Java_ClassLoader详解

    类加载器不仅能够支持本地应用的运行,还能够处理来自远程服务器的 Java 类文件加载。例如,在 OSGi 框架等现代 Java 应用中,类加载机制被广泛利用。 #### 二、类加载过程 类加载过程主要涉及以下几个关键步骤: ...

    中间件内存马注入&冰蝎连接(附更改部分代码)1

    最后,虽然没有详细展开,但文章也提到了Weblogic中间件的内存马注入技术,Weblogic是另一款广泛应用的Java EE应用服务器,其内存马注入方法可能与Tomcat有所不同。 总的来说,本文提供了一个关于中间件内存马注入...

    java classloader讲义-淘宝网

    4. **处理资源**:自定义ClassLoader还需要处理类的加载顺序、缓存策略等问题。 #### 六、实战案例分析 以淘宝网为例,淘宝作为一个大型电子商务平台,面临着频繁的代码更新和部署。为了提高系统的灵活性和可用性...

    tomcat内存溢出问题.doc

    标题中的“tomcat内存溢出问题.doc”表明讨论的主题是关于Tomcat服务器遇到的内存溢出(Out Of Memory,OOM)问题,特别是与Java的PermGen空间相关的内存溢出。描述提到,这个问题是因为Tomcat的初始内存设置过小,...

    ClassLoader实例

    Java 类加载机制是Java虚拟机(JVM)的关键特性之一,它负责将类的字节码文件加载到内存中,并转换为对应的类对象。在Java中,类加载器(ClassLoader)扮演着至关重要的角色,它们负责查找和加载类。本文将深入探讨...

    JVM内存参数详解以及配置调优

    JVM 内存参数是 Java 虚拟机中最重要的参数之一,它直接影响着 Java 应用程序的性能和稳定性。在这个资源中,我们将详细讨论 JVM 内存参数的配置和调优,包括 JVM 的结构、内存管理、垃圾回收、堆和非堆内存、内存...

    阿里巴巴面试总结DOC版

    本资源摘要信息主要总结了阿里巴巴面试中的问题和答案,涵盖了 Java 编程语言、设计模式、JVM 内存模型、ClassLoader 结构、UML 模型图、OSGi 框架、Spring 框架、iBatis 框架、Java 序列化、NIO 编程、HTTP 协议、...

    Java虚拟机类装载:原理、实现与应用

    比如,Web服务器会使用自定义的ClassLoader来加载每个Web应用的类,这样各个应用之间的类就可以保持独立,不会相互冲突。另一个例子是Java的反射API,它利用类装载机制在运行时动态访问和操作类的属性和方法。 总的...

    Android 热修复

    在移动应用开发领域,Android热修复技术是一种解决线上应用bug的有效方法,它允许开发者无需用户重新下载安装应用,即可远程修复应用中的问题。阿里巴巴HotFix是业界知名的热修复框架,本篇文章将详细介绍如何使用...

    AndFixDemo.7z

    当检测到应用中存在需要修复的方法时,AndFix会将新的dex文件注入到应用的内存中,然后通过替换虚拟机中的方法指针来实现修复,整个过程对用户几乎是透明的。 1. **AndFix工作流程**: - **编译阶段**:在服务器端...

Global site tag (gtag.js) - Google Analytics