资源管理方法、装置、设备及产品制造方法及图纸

技术编号:37375814 阅读:17 留言:0更新日期:2023-04-27 07:19
本公开涉及计算机技术领域,具体涉及一种资源管理方法、装置、设备及产品,所述方法包括:创建第一对象时,创建与所述第一对象对应的目标虚引用对象,并将所述目标虚引用对象与虚引用管理队列绑定;在对象管理表中,创建指向第二对象的指针和所述目标虚引用对象的对应关系;监听所述虚引用管理队列,若所述队列中有虚引用对象进入,则将最早进入的虚引用对象移出;至少在所述对象管理表中查询移出的虚拟引用对象对应的指针,并对查询到的指针所指示的第二对象进行回收操作。该方案可以及时对第二对象进行回收,确保系统不会因第二对象占用较多系统资源而导致系统内存溢出,提高了系统正常运行的几率,改善了用户体验。改善了用户体验。改善了用户体验。

【技术实现步骤摘要】
资源管理方法、装置、设备及产品


[0001]本公开涉及计算机
,具体涉及一种资源管理方法、装置、设备及产品。

技术介绍

[0002]近年来,随着科技的发展,终端设备例如移动通讯终端、车载终端的数量迅速增多,为了满足用户日益增长的需求,各种应用程序APP(Application)也被广泛应用在终端设备中。其中,终端设备中的应用程序往往需要创建多种对象来实现应用程序的相应功能,例如信息访问、页面展示、状态查询等。
[0003]本申请的专利技术人发现,系统(第一语言编写)中运行的应用程序如果是用第二语言编写的,会出现应用程序调用的对象无法被及时回收,导致系统存在内存溢出可能性,此时,系统为保障正常运行可能会采取中断或终止该应用程序的操作,这会使得应用程序运行异常(强制关闭等),影响用户体验。

技术实现思路

[0004]为了解决相关技术中的问题,本公开实施例提供一种资源管理方法、装置、设备及产品。
[0005]第一方面,本公开实施例中提供了一种资源管理方法,包括:
[0006]创建第一对象时,创建与第一对象对应的目标虚引用对象,并将目标虚引用对象与虚引用管理队列绑定,第一对象是采用第一语言编写的对象,虚引用管理队列用于记录被回收的第一对象对应的虚引用对象;
[0007]在对象管理表中,创建指向第二对象的指针和目标虚引用对象的对应关系,第二对象是第一对象持有的,第二对象是采用第二语言编写的对象;
[0008]监听虚引用管理队列,若队列中有虚引用对象进入,则将虚引用管理队列中最早进入的虚引用对象从虚引用管理队列中移出;
[0009]在对象管理表中查询移出的虚拟引用对象对应的指针,并对查询到的指针所指示的第二对象进行回收操作,以释放第二对象占用的内存资源。
[0010]第二方面,本公开实施例提供了一种资源管理装置,包括:
[0011]对象创建模块,被配置为创建第一对象时,创建与第一对象对应的目标虚引用对象,并将目标虚引用对象与虚引用管理队列绑定,第一对象是采用第一语言编写的对象,虚引用管理队列用于记录被回收的第一对象对应的虚引用对象;
[0012]关系创建模块,被配置为在对象管理表中,创建指向第二对象的指针和目标虚引用对象的对应关系,第二对象是第一对象持有的,第二对象是采用第二语言编写的对象;
[0013]监听模块,监听虚引用管理队列,若队列中有虚引用对象进入,则将引用管理队列中最早进入的虚引用对象从虚引用管理队列中移出;
[0014]对象回收模块,被配置为在对象管理表中查询移出的虚拟引用对象对应的指针,并对查询到的指针所指示的第二对象进行回收操作,以释放第二对象占用的内存资源。
[0015]第三方面,本公开实施例提供了一种电子设备,包括存储器和处理器,其中,存储器用于存储一条或多条计算机指令,其中,一条或多条计算机指令被处理器执行以实现如第一方面或第一方面中任一种实现方式的方法。
[0016]第四方面,本公开实施例中提供了一种计算机程序产品,包括计算机程序/指令,其中,该计算机程序/指令被处理器执行时实现如第一方面或第一方面中任一种实现方式所述的方法。
[0017]在本公开的技术方案中,通过创建第一对象时,创建与第一对象对应的目标虚引用对象,并将目标虚引用对象与虚引用管理队列绑定,其中目标虚引用对象用于在第一对象被回收时被虚引用管理队列记录,因此虚引用管理队列可以理解用于保存被回收的第一对象所对应的虚引用对象;之后在对象管理表中,创建指向第二对象的指针和目标虚引用对象的对应关系,监听虚引用管理队列,若队列中有虚引用对象进入,可以认为与该虚引用对象对应的第一对象已被回收,在这种情况下,则将虚引用管理队列中最早进入的虚引用对象从虚引用管理队列中移出,并至少在对象管理表中查询移出的虚拟引用对象对应的指针,并对查询到的指针所指示的第二对象进行回收操作,以释放第二对象占用的内存资源,使系统在第一对象已被回收的情况下,可以较为及时的,将上述虚引用管理队列所保存的虚引用对象对应的第一对象(即已被回收的第一对象)中,较早被回收的第一对象所对应的指针指示的第二对象回收掉,确保系统不会因第二对象占用较多系统资源而导致系统内存溢出,从而提高了系统能够正常运行的几率,改善了用户体验。
[0018]应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
[0019]结合附图,通过以下非限制性实施方式的详细描述,本公开的其它特征、目的和优点将变得更加明显。在附图中:
[0020]图1示出根据本公开的实施例的资源管理方法的示意性流程图。
[0021]图2示出根据本公开的实施例的第一对象与第二对象的示意图。
[0022]图3示出根据本公开的实施例的资源管理装置的结构框图。
[0023]图4示出根据本公开的实施例的电子设备的结构框图。
[0024]图5示出适于用来实现根据本公开实施例的方法的计算机系统的结构示意图。
具体实施方式
[0025]下文中,将参考附图详细描述本公开的示例性实施例,以使本领域技术人员可容易地实现它们。此外,为了清楚起见,在附图中省略了与描述示例性实施例无关的部分。
[0026]在本公开中,应理解,诸如“包括”或“具有”等的术语旨在指示本说明书中所公开的特征、数字、步骤、行为、部件、部分或其组合的存在,并且不欲排除一个或多个其他特征、数字、步骤、行为、部件、部分或其组合存在或被添加的可能性。
[0027]另外还需要说明的是,在不冲突的情况下,本公开中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本公开。
[0028]在本公开中,如涉及对用户信息或用户数据的获取操作或向他人展示用户信息或
用户数据的操作,则所述操作均为经用户授权、确认,或由用户主动选择的操作。
[0029]本申请的专利技术人发现,在实际情况中,若系统(第一语言编写)中运行的应用程序如果是用第二语言编写的,会出现应用程序调用的对象无法被及时回收,导致系统存在内存溢出可能性。示例性的,以安卓(Android)系统为例进行说明,其中Android系统是基于Java语言(即第一语言)编写的,在Android系统中运行的应用程序如果是用C++语言(即第二语言)编写的,则该应用程序调用的对象(即C++对象)可能会无法被及时回收,从而导致Android系统存在内存溢出可能性。
[0030]此时,系统为保障正常运行可能会采取中断或终止该应用程序的操作,这会使得应用程序运行异常(强制关闭等),影响用户体验。
[0031]为了解决上述问题,在本公开的技术方案中,通过创建第一对象时,创建与第一对象对应的目标虚引用对象,并将目标虚引用对象与虚引用管理队列绑定,其中目标虚引用对象用于在第一对象被回收时被虚引用管理队列记录,因此虚引用管理队列可以理解用于保存被回收的第一对象所对应的虚引用对象;之后在对象管理表中本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种资源管理方法,包括:创建第一对象时,创建与所述第一对象对应的目标虚引用对象,并将所述目标虚引用对象与虚引用管理队列绑定,所述第一对象是采用第一语言编写的对象,所述虚引用管理队列用于记录被回收的第一对象对应的虚引用对象;在对象管理表中,创建指向第二对象的指针和所述目标虚引用对象的对应关系,所述第二对象是所述第一对象持有的,所述第二对象是采用第二语言编写的对象;监听所述虚引用管理队列,若所述队列中有虚引用对象进入,则将所述虚引用管理队列中最早进入的虚引用对象从所述虚引用管理队列中移出;至少在所述对象管理表中查询移出的虚拟引用对象对应的指针,并对查询到的指针所指示的第二对象进行回收操作,以释放所述第二对象占用的内存资源。2.根据权利要求1所述的资源管理方法,其中,所述第一语言为Java语言,所述第二语言为C++语言或c语言。3.根据权利要求1所述的资源管理方法,其中,所述将所述虚引用管理队列中最早进入的虚引用对象从所述虚引用管理队列中移出,包括:将所述虚引用管理队列的队首的虚引用对象从所述虚引用管理队列中移出。4.根据权利要求1

3中任一项所述的资源管理方法,其中,所述在对象管理表中,创建指向第二对象的指针和所述目标虚引用对象的对应关系,包括:将所述目标虚引用对象作为索引值,并将所述指向第二对象的指针作为与所述索引值对应的表值,插入对象管理表;所述在所述对象管理表中查询移出的虚拟引用对象对应的指针,包括:将所述移出的虚引用对象作为索引值,在对象管理表中查询与该索引值对应的表值,以获取所述移出的虚拟引用对象对应的指针。5.根据权利要求1

3中任一项所述的资源管理方法,其中,所述方法还包括:获取所述第二对象占用的内存量;所述在对象管理表中,创建指向第二对象的指针和所述目标虚引用对象的对应关系,包括:将所述目标虚引用对象作为索引值,将所述指向第二对象的指针和所述内存量分别作为与所述索引值对应的表值,插入对象管理表;至少所述在所述对象管理表中查询移出的虚拟引用对象对应的指针,包括:将所述移出的虚引用对象作为索引值,在对象管理表中查询与该索引值对应的表值,以获取所述移出的虚拟引用对象对应的指针和对应的内存量;所述方法还包括:发送用于指示所述移出的虚拟引用对象对应的内存量的内存量指示信息至操作系统。6.根据权利要...

【专利技术属性】
技术研发人员:曹文森
申请(专利权)人:高德信息技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1