[发明专利]业务处理方法和Java虚拟机无效
| 申请号: | 201110210849.8 | 申请日: | 2011-07-26 |
| 公开(公告)号: | CN102253854A | 公开(公告)日: | 2011-11-23 |
| 发明(设计)人: | 梁孔荣 | 申请(专利权)人: | 华为技术有限公司 |
| 主分类号: | G06F9/455 | 分类号: | G06F9/455;G06F9/445 |
| 代理公司: | 北京同立钧成知识产权代理有限公司 11205 | 代理人: | 余丽 |
| 地址: | 518129 广东*** | 国省代码: | 广东;44 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 业务 处理 方法 java 虚拟机 | ||
技术领域
本发明涉及计算机技术领域,特别涉及一种业务处理方法和Java虚拟机。
背景技术
在采用Java或其他编程语言的虚拟机中,虚拟机根据垃圾收集算法判断内存是否可以释放,判断的方法是对象的可达性,如果对象是可达的则不可以释放,如果对象是不可达的则需要释放。在虚拟机运行时,从引用根集(Root set of references)通过直接或间接方式引用到的对象是可达对象,其它对象是不可达对象。不可达的对象就是垃圾,需要回收以释放内存。
通常以“Root set of references”作为垃圾回收的起点,能够遍历得到的对象就是可达的,遍历不到的对象就是不可达的。其中,“Root set of references”是一个集合,即可以作为垃圾回收的起点有多个,但最主要的起点是活动线程的栈和系统类加载器,一般可以以静态变量作为垃圾收集的起点。
现有技术中,程序中的模块会在首次使用时加载并初始化,在整个虚拟机的生命周期内一直存活直到进程关闭。模块加载以后占用的堆内存资源、模块类占用的永久段内存资源不会适时释放,导致虚拟机消耗的内存随着使用功能的增多而不断增长,部分模块在执行的所有线程退出后几毫秒至几天甚至几年释放才能释放,造成内存资源浪费。
发明内容
本发明实施例提供了一种业务处理方法和Java虚拟机,以解决现有的模块卸载方法浪费内存资源的问题。
本发明实施例提供一种业务处理方法,包括:
接收部件的调用某个功能的请求,通过弱引用对象调用实现所述功能的模块对象;
将所述模块对象返回给所述部件以进行业务处理;
判断所述模块对象是否弱可达,若为是,则清除所述模块对象。
本发明实施例还提供一种Java虚拟机,包括:
模块管理容器,用于对弱引用对象以及模块对象进行管理,所述模块对象实现设定的功能,所述模块管理容器在收到部件的调用所述设定的功能的请求时,通过所述弱引用对象调用所述模块对象,将所述模块对象返回给所述部件;
垃圾收集器,用于在所述模块对象为弱可达时,清除所述模块对象。
本发明实施例提供的业务处理方法和Java虚拟机,模块管理容器接收部件发出的调用设定功能的请求时,通过弱引用对象调用实现该设定功能的模块对象,部件调用该模块对象进行业务处理之后,若模块对象弱可达,则能够被虚拟机清除,从而使模块占用的内存资源能够及时释放,节约了内存资源。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提供的业务处理方法一个实施例的流程图;
图2为本发明实施例提供的业务处理方法涉及的堆内存的结构示意图;
图3a为图1所示实施例的一种业务处理过程中堆内存中各模块的引用关系图;
图3b为图1所示实施例的一种业务处理之后堆内存中各模块的引用关系图;
图3c为图1所示实施例的又一种业务处理过程中堆内存中各模块的引用关系图;
图3d为图1所示实施例的又一种业务处理之后堆内存中各模块的引用关系图;
图4a为本发明提供的业务处理方法又一个实施例中模块管理容器向部件返回模块对象的流程图;
图4b为本发明提供的业务处理方法又一个实施例中部件调用模块对象进行业务处理的流程图;
图5为图4a和图4b所示实施例的业务处理过程中堆内存和永久段中各模块的引用关系图;
图6为本发明提供的业务处理方法另一个实施例中模块管理容器向部件返回模块对象的流程图;
图7为本发明提供的Java虚拟机一个实施例的结构示意图;
图8为本发明提供的Java虚拟机又一个实施例的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明提供的业务处理方法一个实施例的流程图,如图1所示,该方法包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司,未经华为技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110210849.8/2.html,转载请声明来源钻瓜专利网。
- 上一篇:断电报警装置
- 下一篇:基站装置以及发送方法





