YourKit中「不属于特定Web应用的对象」含义及WebSphere相关疑问
关于YourKit中「不属于特定Web应用的对象」的解析
经常用YourKit做Web应用性能分析的同学,应该都见过这个「不属于特定Web应用的对象」条目吧?我来给你一步步拆解它的含义,以及在WebSphere环境下的具体情况:
一、基础含义
在YourKit的Web应用分类快照里,这个条目专门用来收纳那些没法关联到任何已识别的业务Web应用上下文的Java对象。直白点说:这些对象不是你部署的某个WAR/EAR应用创建的,也不属于某个具体应用的运行范围,而是属于服务器全局层面或者系统级别的“公共资产”。
二、WebSphere应用服务器下的具体指代
要是你的服务部署在WebSphere上,这类对象大多是下面这些东西:
- WebSphere核心服务组件实例:比如JVM级别的系统类加载器、服务器全局线程池的管理对象、全局JNDI上下文实例
- 跨应用共享的资源:比如全局配置的数据源连接池、集群同步相关的状态对象、服务器级别的缓存实例
- 服务器启动阶段初始化的系统级对象:这些是在你的业务应用部署之前,WebSphere就已经创建好的基础服务对象,比如事务管理器(Transaction Manager)的核心实例、资源适配器管理器
- 共享类路径下的第三方库对象:如果某些第三方依赖包被放在WebSphere的共享类路径(比如
${WAS_HOME}/lib/ext)而非应用包内,它们创建的对象也会被归到这个类别
三、这类对象的创建者
至于这些对象是谁创建的?主要是WebSphere本身的核心启动和管理模块,具体来说:
- WebSphere的BootstrapClassLoader及其关联的初始化代码:负责启动服务器的核心基础服务,是最早创建系统级对象的环节
- 服务器的核心管理组件:比如分布式环境下的Deployment Manager、节点级别的Node Agent,在节点初始化时会创建全局资源对象
- WebSphere的核心系统服务:比如Transaction Manager、Resource Adapter Manager等,这些服务在应用部署前就会完成初始化并生成相关对象
- 另外,JVM自身的一些系统对象(比如系统线程、内置的核心类实例)也会被YourKit归到这个分类下
内容的提问来源于stack exchange,提问作者Sara Selim
相关产品推荐
相关产品推荐

