[发明专利]一种资源释放方法和装置有效
申请号: | 200910189609.7 | 申请日: | 2009-08-18 |
公开(公告)号: | CN101639779A | 公开(公告)日: | 2010-02-03 |
发明(设计)人: | 黄朝兴;唐声福;陈天民 | 申请(专利权)人: | 腾讯科技(深圳)有限公司 |
主分类号: | G06F9/44 | 分类号: | G06F9/44 |
代理公司: | 广州三环专利代理有限公司 | 代理人: | 郝传鑫;潘中毅 |
地址: | 518057广东省深圳市高新*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 资源 释放 方法 装置 | ||
技术领域
本发明涉及数据处理领域,尤其涉及一种资源释放方法和装置。
背景技术
ActionScript是Flash的脚本语言,与JavaScript类似ActionScript是一种 面向对象编程语言。在目前的ActionScript的版本中(如ActionScript 3.0)有 相应的垃圾回收机制用于释放系统运行时使用的各种资源。但是该垃圾回收 机制不够完善,无法实现资源的完全释放。
具体来说,在ActionScript环境中采用加载函数Loader加载外部的flash (一种矢量动画文件格式)资源时,若调用脚本语言中提供的标准卸载函数 unload函数,无法实现资源的完全释放,形成资源泄露。比如,当加载的是 图片,现有的垃圾回收机制仅仅调用unload方法无法彻底完成释放;如果加 载的是另一flash,现有的垃圾回收机制仅仅调用unload,如果被加载的flash 中有自有的运行逻辑,如果不通知其析构,则被加载的逻辑将继续运行。
进一步的,如在互联网娱乐领域中的企鹅多人同屏社区中采用flash作为 2D(二维)引擎,该运行环境中的每个场景都要加载许多的显示元素,如flash 格式、流式网络图形格式(Portable Network Graphic Format,PNG)的显示对象 等。在切换场景时,卸载显示元素时,由于资源释放不完全,内存不断泄露, 有时虚拟内存的泄露甚至超过1GB。而且随着对该运行环境的不断丰富,其 运行时的场景切换将越来越多。这会给整个系统的运行带来严重的后果。
发明内容
本发明实施例所要解决的技术问题在于,提供一种资源释放方法和装置, 以实现资源的完全释放,防止泄露。
为此,本发明实施例提供了一种资源释放方法,用于脚本语言环境中, 该方法包括:调用释放函数接口以获取被释放对象信息;根据所述被释放对 象信息确定被释放对象的数据类型,所述数据类型包括普通对象、多层对象 和析构对象,其中所述析构对象是指实现自定义析构函数的对象;若确定被 释放对象为普通对象,调用所述脚本语言的第一库函数释放所述普通对象; 若确定被释放对象为多层对象,递归调用所述释放函数接口以释放所述多层 对象;若确定被释放对象为析构对象,调用所述析构函数接口以释放所述析 构对象。
相应地,本发明实施例还提供了资源释放装置,用于脚本语言环境中, 该装置包括:用于调用释放函数接口以获取被释放对象信息;确定单元,用 于根据所述被释放对象信息确定被释放对象的数据类型,所述数据类型包括 普通对象、多层对象和析构对象,其中所述析构对象是指实现自定义析构函 数的对象;释放单元,用于当确定单元确定被释放对象为普通对象时,调用 所述脚本语言的第一库函数释放所述普通对象;当确定单元确定被释放对象 为多层对象时,递归调用确定模块和释放模块释放所述多层对象;当确定单 元确定被释放对象为析构对象时,调用所述析构函数接口以释放所述析构对 象。
实施本发明实施例,通过调用释放函数接口来释放资源,因此可实现脚 本语言环境中资源的完全释放,防止泄露,保证系统的稳定运行。
附图说明
图1是本发明方法实施例中的资源释放方法的一个具体流程示意图;
图2是图1中步骤103的一个具体实现的流程示意图;
图3是本发明系统实施例中的资源释放方法的一个具体结构示意图;
图4是图3中的释放单元的一个具体结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行 清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而 不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作 出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了实现在脚本语言环境中资源的完全释放,本发明实施例提出了一种 资源释放方法,在该方法中使用释放函数来完成资源的释放。如图1所示, 该方法包括:
步骤101、调用释放函数接口以获取被释放对象信息。即当需要对资源进 行释放时,调用释放函数接口,通过释放函数接口可以传递被释放对象信息。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯科技(深圳)有限公司,未经腾讯科技(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200910189609.7/2.html,转载请声明来源钻瓜专利网。