`
iihero
  • 浏览: 260841 次
  • 性别: 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 应用中,类加载机制被广泛利用。 #### 二、类加载过程 类加载过程主要涉及以下几个关键步骤: ...

    tomcat内存溢出问题.doc

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

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

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

    java classloader讲义-淘宝网

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

    ClassLoader实例

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

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

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

    深入Class Loader

    深入理解类加载器,首先要知道Java中有多个类加载器,包括引导类加载器(Bootstrap ClassLoader)、扩展类加载器(Extension ClassLoader)、应用类加载器(App ClassLoader)以及自定义类加载器。它们构成了类加载...

    阿里巴巴面试总结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