CN115981831A - 内存管理方法及相关设备 - Google Patents
内存管理方法及相关设备 Download PDFInfo
- Publication number
- CN115981831A CN115981831A CN202111196564.3A CN202111196564A CN115981831A CN 115981831 A CN115981831 A CN 115981831A CN 202111196564 A CN202111196564 A CN 202111196564A CN 115981831 A CN115981831 A CN 115981831A
- Authority
- CN
- China
- Prior art keywords
- memory
- storage container
- condition
- management
- release
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 230000015654 memory Effects 0.000 title claims abstract description 469
- 238000007726 management method Methods 0.000 title claims abstract description 166
- 238000000034 method Methods 0.000 claims abstract description 29
- 238000012545 processing Methods 0.000 claims description 11
- 238000004891 communication Methods 0.000 claims description 9
- 230000006870 function Effects 0.000 description 15
- 238000010586 diagram Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种内存管理方法及相关设备,该方法包括:在接收到管理方发送的管理指令的情况下,确定管理指令表征的操作类别和第一内存块;根据操作类别对第一内存块进行管理操作;其中,管理操作包括以下任意一项:在管理指令表征的操作类别为第一操作的情况下,分配第一内存块中的至少部分内存;在管理指令表征的操作类别为第二操作的情况下,释放第一内存块中的全部内存;在管理指令表征的操作类别为第三操作的情况下,重新分配第一内存块中的至少部分内存。本发明实施例中,通过简化内存的管理操作流程,提高了内存管理的效率。
Description
技术领域
本发明实施例涉及计算机技术领域,尤其涉及一种内存管理方法及相关设备。
背景技术
目前,开发人员在研发软件时,会在软件的内存堆区预先存储一定空间大小的内存。
然而,当要求对内存堆区的内存重新分配时,或者,该软件增加了额外的业务需求,要求在内存堆区新增内存以处理更为复杂的业务需求时,需要开发人员制作升级包对软件进行升级,以此在内存堆区重新设定内存的存储空间,实现对内存的重新分配和新增内存。此外,开发人员在研发软件时,先行限定了内存释放的条件,这导致无法对内存进行灵活的释放。
基于上述内容可以得到,现有的对内存进行管理的操作过程较为繁琐,这降低了内存管理的效率。
发明内容
本发明实施例提供一种内存管理方法及相关设备,以解决内存管理方式较为复杂,进而降低了内存管理效率的技术问题。
为解决上述问题,本发明是这样实现的:
第一方面,本发明实施例提供了一种内存管理方法,所述方法包括:
在接收到管理方发送的管理指令的情况下,确定所述管理指令表征的操作类别和第一内存块;
根据所述操作类别对所述第一内存块进行管理操作;
其中,所述管理操作包括以下任意一项:
在所述管理指令表征的操作类别为第一操作的情况下,分配所述第一内存块中的至少部分内存;
在所述管理指令表征的操作类别为第二操作的情况下,释放所述第一内存块中的全部内存;
在所述管理指令表征的操作类别为第三操作的情况下,重新分配所述第一内存块中的至少部分内存。
第二方面,本发明实施例还提供一种终端,包括:
确定模块,用于在接收到管理方发送的管理指令的情况下,确定所述管理指令表征的操作类别和第一内存块;
处理模块,用于根据所述操作类别对所述第一内存块进行管理操作;
其中,所述管理操作包括以下任意一项:
在所述管理指令表征的操作类别为第一操作的情况下,分配所述第一内存块中的至少部分内存;
在所述管理指令表征的操作类别为第二操作的情况下,释放所述第一内存块中的全部内存;
在所述管理指令表征的操作类别为第三操作的情况下,重新分配所述第一内存块中的至少部分内存。
第三方面,本发明实施例还提供一种通信设备,包括:收发机、存储器、处理器及存储在所述存储器上并可在所述处理器上运行的程序;所述处理器,用于读取存储器中的程序实现如前述第一方面所述方法中的步骤。
第四方面,本发明实施例还提供一种可读存储介质,用于存储程序,所述程序被处理器执行时实现如前述第一方面所述方法中的步骤。
本发明实施例中,根据管理方发送的管理指令对内存堆区中的内存进行管理操作。具体而言,当管理指令表征重新分配内存堆区中的内存或者在内存堆区新分配内存时,直接在堆区完成内存的重新分配操作或新增内存操作,而无需通过应用升级的方式在内存堆区重新设定内存的存储空间;当管理指令表征释放内存堆区中的内存时,直接在堆区完成内存的释放操作。本发明实施例中,通过简化内存的管理操作流程,提高了内存管理的效率。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的内存管理方法的流程示意图;
图2是本发明实施例提供的分配新内存的流程图;
图3是本发明实施例提供的释放内存的流程图;
图4是本发明实施例提供的重新分配内存的流程图;
图5是本发明实施例提供的另一释放内存的流程图;
图6是本发明实施例提供的内存管理方法的应用场景示意图;
图7是本发明实施例提供的终端的结构示意图;
图8是本发明实施例提供的通信设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。此外,本申请中使用“和/或”表示所连接对象的至少其中之一,例如A和/或B和/或C,表示包含单独A,单独B,单独C,以及A和B都存在,B和C都存在,A和C都存在,以及A、B和C都存在的7种情况。
为使本发明要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例进行详细描述。
参见图1,图1是本发明实施例提供的内存管理方法的流程示意图。图1所示的内存管理方法可以在两个终端上执行,或者在一个终端上执行。
本实施例的一种应用场景为,管理方终端向被管理方终端发送管理指令,被管理方终端根据管理指令对内存进行管理操作。上述场景中,本实施例提供的内存管理方法在两个终端上执行,这两个终端可以通过wifi接口、蓝牙接口和USB接口等通信接口建立通信。
本实施例提供的另一种应用场景为,管理方程序向被管理方程序发送管理指令,被管理方程序根据管理指令对内存进行管理操作,这2个程序可以通过跨进程通信的方式建立通信。上述场景中,管理方程序和被管理方程序位于同一终端,本实施例提供的内存管理方法在一个终端上执行。
应理解,下述实施例的管理方和被管理方可以为不同终端,即对应上述第一种应用场景;下述实施例的管理方和被管理方也可以为相同终端,即对应上述第二种应用场景。如图1所示,内存管理方法可以包括以下步骤:
S101,在接收到管理方发送的管理指令的情况下,确定所述管理指令表征的操作类别和第一内存块。
上述管理指令包括有操作标识信息和名称信息,其中,操作标识信息用于表征管理指令的操作类别;名称信息又称为内存块ID,名称信息用于表征管理指令对应的内存块名称。其中,内存块可以理解为是多个内存的集合,应理解,每个内存占用一位地址,内存块占用连续的多位地址。
应理解,管理方和被管理方预先存储有各个内存块对应的名称信息,具体而言,在管理方发送管理指令之前,生成每个内存块对应的名称信息,并将上述名称信息同步至管理方和被管理方。
本步骤中,在接收到管理方发送的管理指令后,对管理指令进行解析,得到操作标识信息和名称信息。根据操作标识信息确定管理指令所表征的操作类别,根据名称信息确定管理指令所表征的内存块。
S102,根据所述操作类别对所述第一内存块进行管理操作。
本步骤中,在对管理指令进行解析,确定管理指令所表征的操作类别和第一内存块后,对第一内存块进行管理操作。
其中,管理操作包括以下任意一项:
在管理指令表征的操作类别为第一操作的情况下,分配第一内存块中的至少部分内存。
上述第一操作又称为分配新内存操作,这种情况下,分配第一内存块中的部分或全部内存,其中,可以通过用于分配内存的函数,例如malloc函数和new函数,分配第一内存块中的部分或全部内存。
在管理指令表征的操作类别为第二操作的情况下,释放第一内存块中的全部内存。
上述第二操作又称为释放内存操作,这种情况下,释放第一内存块中的全部内存,其中,可以通过用于释放内存的函数,例如free函数和delete函数,释放第一内存块中的部分或全部内存。
在管理指令表征的操作类别为第三操作的情况下,重新分配第一内存块中的至少部分内存。
上述第三操作又称为重新分配内存操作,这种情况下,重新分配第一内存块中的全部或部分内存。
本发明实施例中,根据管理方发送的管理指令对内存堆区中的内存进行管理操作。具体而言,当管理指令表征重新分配内存堆区中的内存或者在内存堆区新分配内存时,直接在堆区完成内存的重新分配操作或新增内存操作,而无需通过应用升级的方式在内存堆区重新设定内存的存储空间;当管理指令表征释放内存堆区中的内存时,直接在堆区完成内存的释放操作。本发明实施例中,通过简化内存的管理操作流程,提高了内存管理的效率。
需要理解的是,第一内存块中的内存包括第一释放类型和第二释放类型,这两种释放类型。其中,第一释放类型为定时释放,即内存对应的存储时长达到释放时长后,释放内存;第二释放类型为触发释放,即在接收到触发指令后,释放内存。
在分配新内存的过程中,对于上述两种释放类型,采用两种不同的内存分配方式,以下,对这两种不同的内存分配方式进行说明。
可选地,在管理指令表征的操作类别为第一操作的情况下,所述分配所述第一内存块中的至少部分内存包括:
在内存释放信息用于表征第一释放类型的情况下,从所述第一内存块分配所述第一内存;
在分配成功的情况下,将分配后的第一内存对应的地址信息、释放时长以及第一名称信息写入第一存储容器,并发送分配成功结果至所述管理方;
在分配失败的情况下,发送分配失败结果至所述管理方。
应理解,管理指令包括内存释放信息和第一名称信息,第一名称信息用于表征第一内存块对应的名称。在内存释放信息表征第一释放类型的情况下,内存释放信息包括释放时长,管理指令还包括第一内存,其中,第一内存为第一释放类型对应的待分配内存的大小。
本实施例中,在内存释放信息表征第一释放类型的情况下,分配第一内存块中的第一内存,其中,第一内存可以为第一内存块中的全部内存,也可以为第一内存块中的部分内存。
在分配成功的情况下,将分配后的第一内存对应的地址信息、管理指令中的释放时长以及第一名称信息写入第一存储容器;应理解,第一存储容器用于在第一内存对应的地址信息的存储时长达到释放时长的情况下控制释放第一内存,或者,第一存储容器在第一名称信息对应的存储时长达到释放时长的情况下控制释放第一内存。上述第一存储容器可以是定时类型存储容器,且第一存储容器可以为list、vector、map等任意类型的存储容器。在将上述内容写入第一存储容器后,发送分配成功结果至管理方,其中,分配成功结果可以为一个二进制数值。
一种可选的实施方式为,在第一内存分配后,读取第一内存对应的分配时间,上述分配时间为将第一内存中的所有内存分配后得到的时间;将分配时间与释放信息中表征的释放时长相加,得到第一内存对应的释放时间,并将上述释放时间写入第一存储容器。第一存储容器在写入第一名称信息后计时,在第一名称信息对应的存储时间为释放时间时,释放第一名称信息关联的第一内存。
在分配失败的情况下,直接将分配失败结果发送至管理方,其中,分配失败结果可以为一个二进制数值,且该二进制数值与分配成功结果表征的二进制数值不同。
可选地,所述分配所述第一内存块中的至少部分内存还包括:
在所述内存释放信息用于表征第二释放类型的情况下,从所述第一内存块分配第二内存;
在分配成功的情况下,将分配后的第二内存对应的地址信息和所述第一名称信息写入第二存储容器,并发送分配成功结果至所述管理方;
在分配失败的情况下,发送分配失败结果至所述管理方。
如上所述,管理指令包括内存释放信息和第一名称信息,在内存释放信息表征第二释放类型的情况下,管理指令还包括第二内存,其中,第二内存为第二释放类型对应的待分配内存的大小。
本实施例中,在内存释放信息表征第二释放类型的情况下,将第二内存块中的第二内存分配至目标对象,其中,第二内存可以表示第一内存块中的全部内存,也可以表示第一内存块中的部分内存。
在分配成功的情况下,将分配后的第二内存对应的地址信息和第一名称信息写入第二存储容器;应理解,第二存储容器用于在接收到触发指令的情况下释放第二内存,上述第二存储容器可以是触发类型存储容器,且第二存储容器可以为list、vector、map等任意类型的存储容器。在将上述内容写入第二存储容器后。
在分配失败的情况下,直接将分配失败结果发送至管理方。
为便于理解,以下结合图2对上述两种分配新内存的方式进行说明,图2是本发明实施例提供的新分配内存的流程图。
如图2所示,被管理方接收到管理指令后,解析管理指令,得到内存大小信息、内存释放信息和第一名称信息,其中,上述内存大小信息用于表征待分配内存的大小。
在待分配内存为定时释放类型的内存的情况下,获取内存释放信息中的释放时长,并对待分配内存进行分配。在分配成功后,将分配后的内存对应的地址信息、释放时长以及第一名称信息写入第一存储容器,并发送分配结果至管理方。
在待分配内存为触发释放类型的内存的情况下,对待分配内存进行分配。在分配成功后,将分配后的内存对应的地址信息、以及第一名称信息写入第一存储容器,并发送分配结果至管理方。
本实施例中,根据管理方发送的管理指令,直接将内存块中的部分或全部内存分配至目标对象,而无需制作升级包对目标对象进行升级,这样,将内存的分配过程与目标对象的升级过程解耦,简化了分配新内存的操作,以此提高了内存管理的效率。并且,在分配新内存的过程中,可以存入外部数据,进一步的,可以将外部数据传递给外部或内部的需求方,实现了数据的中转功能。
可选地,在所述管理指令表征的操作类别为第二操作的情况下,所述释放所述第一内存块中的全部内存包括:
基于第一名称信息,在第二存储容器中进行查询;
在所述第二存储容器存在所述第一名称信息的情况下,释放所述第一内存块中的全部内存;
在释放所述第一内存块中的全部内存成功的情况下,在所述第二存储容器中删除所述第一名称信息和所述第一内存块中的全部内存对应的地址信息,并发送释放成功结果至所述管理方;
在释放所述第一内存块中的全部内存失败的情况下,发送释放失败结果至所述管理方。
如上所述,管理指令包括用于表征第一内存块名称的第一名称信息。应理解,第二存储容器用于存储接收到触发指令后释放的内存,也就是说,与第二存储容器关联的内存块为触发型内存块,在接收到触发指令后,释放第二存储容器存储的触发型内存块。
本实施例中,在第二存储容器中对管理指令中的第一名称信息进行查询,若第二存储容器中存在该第一名称信息,表示该第一名称信息对应的第一内存块为触发型内存块,则释放第一内存块中的全部内存。
若第二存储容器中不存在第一名称信息,表示第一内存块不为触发型内存块,或者第一内存块中的内存未分配。
本实施例中,在释放第一内存块中的全部内存成功的情况下,在第二存储容器中删除第一名称信息和第一内存块中的全部内存对应的地址信息,并发送释放成功结果至管理方。其中,释放成功结果可以为一个二进制数值。
本实施例中,在释放第一内存块中的全部内存失败的情况下,表示目标对象运行错误或者第二存储容器运行错误,则发送释放失败结果至管理方,其中,释放失败结果可以为一个二进制数值,且该二进制数值与释放成功结果表征的二进制数值不同。
本实施例中,根据管理指令表征的操作类别,对已分配的内存进行释放,减少应用程序的内存溢出,并丰富了内存的释放方式,使得内存的释放更为灵活。
为便于理解,以下结合图3对上述释放内存的方式进行说明,图3是本发明实施例提供的释放内存的流程图。
如图3所示,被管理方接收到管理指令后,解析管理指令,得到第一名称信息,在第二存储容器中对第一名称信息进行查询。
在第二存储容器中存在第一名称信息的情况下,释放第一内存块中的全部内存,并在第二存储容器中删除第一名称信息和待释放内存对应的地址信息,在释放成功的情况下,发送释放成功结果至管理方。在释放失败的情况下,发送释放失败结果至管理方。
可选地,在所述管理指令表征的操作类别为第三操作的情况下,所述重新分配所述第一内存块中的至少部分内存包括:
基于第一名称信息的存储位置,确定目标存储容器;
从所述第一内存块重新分配第三内存;
在重新分配所述第三内存成功的情况下,更新所述目标存储容器存储的地址信息,并发送重新分配成功结果至所述管理方;
在重新分配所述第三内存失败的情况下,发送重新分配成功失败至所述管理方。
如上所述,管理指令包括第一名称信息,第一名称信息用于表征第一内存块的名称。
应理解,对于已分配的内存,被管理方的存储容器中存储有该内存对应的名称信息,上述目标存储容器为存在第一名称信息的第一存储容器或第二存储容器。
在第一存储容器和第二存储容器中对第一名称信息进行查询,若第一存储容器中存在第一名称信息,表示第一内存块中的部分或全部内存为已分配且为定时释放类型的内存;若第二存储容器中存在第一名称信息,表示第一内存块中的部分或全部内存为已分配且为触发释放类型的内存,若第一存储容器和第二存储容器均不存在第一名称信息,表示第一内存块中的内存尚未分配。
本实施例中的管理指令还包括第三内存,该第三内存为待重新分配内存的大小。在确定目标存储容器后,将第一内存块中的第三内存重新分配至目标对象,其中,第三内存为第一内存块中的部分内存或全部内存。
本实施例中,在重新分配第一内存块中的第三内存成功的情况下,更新目标存储容器存储的地址信息,将第三内存对应的地址信息写入目标存储容器。并发送重新分配成功结果至管理方。其中,释放成功结果可以为一个二进制数值。
本实施例中,在重新分配第一内存块中的第三内存失败的情况下,发送重新分配失败结果至管理方,其中,重新分配失败结果可以为一个二进制数值,且该二进制数值与重新分配成功结果表征的二进制数值不同。
本实施例中,根据管理方发送的管理指令,对已分配的内存进行重新分配,实现对已分配内存的精细化管理;同时无需制作升级包在内存堆区重新设定内存的存储空间,通过简化分配新内存的操作,提高内存管理的效率。
为便于理解,以下结合图4对上述重新分配内存的方式进行说明,图4是本发明实施例提供的重新分配内存的流程图。
如图4所示,被管理方接收到管理指令后,解析管理指令,得到第一名称信息和内存大小信息,其中,内存大小信息于表征待重新分配内存的大小。
根据第一名称信息的存储位置,确定目标存储容器,其中,目标存储容器为第一存储容器或第二存储容器。对待重新分配内存进行重新分配,在重新分配成功的情况下,更新目标存储容器存储的地址信息,并发送重新分配成功结果至管理方;在重新分配失败的情况下,发送重新分配失败结果至管理方。
可选地,所述方法包括:
在第四内存的存储时长达到释放时长的情况下,释放所述第四内存;
在所述第一存储容器中删除所述地址信息、所述释放时长,以及所述第二名称信息。
如上所述,第一存储容器为定时类型存储容器,第一存储容器存储有第四内存对应的地址信息、释放时长,以及第二名称信息;其中,第二名称信息为第四内存所属第二内存块的名称信息。
在第四内存对应的存储时长达到释放时长的情况下,释放第四内存。其中,上述存储时长为第一存储容器中写入第四内存对应的地址信息的时长,或者,上述存储时长为第一存储容器中写入第二名称信息对应的时长。在释放第四内存后,在第一存储容器中删除第四内存对应的地址信息、释放时长,以及第二名称信息。
本实施例中,定时释放类型的内存在分配时,将定时释放类型的内存对应的释放时长写入存储容器,当该内存对应的存储时长达到释放时长时,自动对内存进行释放,以此丰富内存的释放方式,使得内存的释放更为灵活。
为便于理解,以下结合图5对上述释放内存的另一方式进行说明,图5是本发明实施例提供的另一释放内存的流程图。
被管理方周期性对第一存储容器进行监听,在第一存储容器中存在存储时长达到释放时长的待释放内存的情况下,释放上述待释放内存,并在第一存储容器中删除该内存对应的地址信息、释放时长,以及名称信息。
请参见图6,图6是本发明实施例提供的内存管理方法的应用场景示意图。如图6所示,内存管理方法可以应用在被管理方,被管理方可以是内存所在程序或设备,被管理方包括动态内存区域、内存管理函数模块、监听模块、第一存储容器、第二存储容器和名称信息生成模块,其中,监听模块包括内存管理指令监听器和时间监听器;可选地,名称信息生成模块可以设置在管理方。
需要说明的是,上述动态内存区域用于存储内存,且动态内存区域的存储大小和存储位置可以自定义设置。上述内存管理函数模块包括用于分配内存的函数,例如malloc函数和new函数,也包括用于释放内存的函数,例如free函数和delete函数。上述内存管理指令监听器用于接收管理指令,并根据管理指令与第一存储容器和第二存储容器进行交互操作。上述时间监听器用于周期性对第一存储容器进行监听。上述名称信息生成模块用于生成动态内存区域中各内存块对应的名称信息。
图6中的管理方可以是远程管理程序,或远程管理设备;管理方包括内存管理指令发射器和指令执行结果接收器。上述内存管理指令发射器用于向被管理方发送内存管理指令;上述指令执行结果接收器用于接收被管理方反馈的执行结果。
参见图7,图7是本发明实施例提供的终端的结构示意图。如图7所示,终端700包括:
确定模块701,用于在接收到管理方发送的管理指令的情况下,确定所述管理指令表征的操作类别和第一内存块;
处理模块702,用于根据所述操作类别对所述第一内存块进行管理操作。
可选地,所述处理模块702具体用于:
在内存释放信息用于表征第一释放类型的情况下,从所述第一内存块分配所述第一内存;
在分配成功的情况下,将分配后的第一内存对应的地址信息、释放时长以及第一名称信息写入第一存储容器,并发送分配成功结果至所述管理方;
在分配失败的情况下,发送分配失败结果至所述管理方。
可选地,所述处理模块702具体用于:
在所述内存释放信息用于表征第二释放类型的情况下,从所述第一内存块分配第二内存;
在分配成功的情况下,将分配后的第二内存对应的地址信息和所述第一名称信息写入第二存储容器,并发送分配成功结果至所述管理方;
在分配失败的情况下,发送分配失败结果至所述管理方。
可选地,所述处理模块702具体用于:
基于第一名称信息,在第二存储容器中进行查询;
在所述第二存储容器存在第一名称信息的情况下,释放第一内存块中的全部内存;
在释放所述第一内存块中的全部内存成功的情况下,在所述第二存储容器中删除所述第一名称信息和所述第一内存块中的全部内存对应的地址信息,并发送释放成功结果至所述管理方;
在释放所述第一内存块中的全部内存失败的情况下,发送释放失败结果至所述管理方。
可选地,所述处理模块702具体用于:
基于第一名称信息的存储位置,确定目标存储容器;
从第一内存块重新分配第三内存;
在重新分配所述第三内存成功的情况下,更新所述目标存储容器存储的地址信息,并发送重新分配成功结果至所述管理方;
在重新分配所述第三内存失败的情况下,发送重新分配成功失败至所述管理方。
可选地,所述终端700还包括:
释放模块,用于在第四内存的存储时长达到释放时长的情况下,释放所述第四内存;
删除模块,用于在第一存储容器中删除所述地址信息、所述释放时长,以及所述第二名称信息。
终端700能够实现本发明实施例中图1方法实施例的各个过程,以及达到相同的有益效果,为避免重复,这里不再赘述。
本发明实施例还提供一种通信设备。请参见图8,通信设备可以包括处理器801、存储器802及存储在存储器802上并可在处理器801上运行的程序8021。
在设备为服务器的情况下,程序8021被处理器801执行时可实现图1对应的方法实施例中的任意步骤及达到相同的有益效果,此处不再赘述。
本领域普通技术人员可以理解实现上述实施例方法的全部或者部分步骤是可以通过程序指令相关的硬件来完成,所述的程序可以存储于一可读取介质中。
本发明实施例还提供一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时可实现上述图1对应的方法实施例中的任意步骤,且能达到相同的技术效果,为避免重复,这里不再赘述。
所述的存储介质,如只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等。
以上所述是本发明实施例的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明所述原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (14)
1.一种内存管理方法,其特征在于,包括:
在接收到管理方发送的管理指令的情况下,确定所述管理指令表征的操作类别和第一内存块;
根据所述操作类别对所述第一内存块进行管理操作;
其中,所述管理操作包括以下任意一项:
在所述管理指令表征的操作类别为第一操作的情况下,分配所述第一内存块中的至少部分内存;
在所述管理指令表征的操作类别为第二操作的情况下,释放所述第一内存块中的全部内存;
在所述管理指令表征的操作类别为第三操作的情况下,重新分配所述第一内存块中的至少部分内存。
2.根据权利要求1所述的方法,其特征在于,在管理指令表征的操作类别为第一操作的情况下,所述分配所述第一内存块中的至少部分内存包括:
在内存释放信息用于表征第一释放类型的情况下,从所述第一内存块分配所述第一内存;其中,所述管理指令包括第一内存、内存释放信息和第一名称信息,所述第一内存为所述第一释放类型对应的待分配内存的大小,所述内存释放信息包括释放时长,所述第一名称信息用于表征所述第一内存块对应的名称;
在分配成功的情况下,将分配后的第一内存对应的地址信息、所述释放时长以及所述第一名称信息写入第一存储容器,并发送分配成功结果至所述管理方;所述第一存储容器用于在所述第一内存的存储时长达到所述释放时长的情况下释放所述第一内存;
在分配失败的情况下,发送分配失败结果至所述管理方。
3.根据权利要求2所述的方法,其特征在于,所述分配所述第一内存块中的至少部分内存还包括:
在所述内存释放信息用于表征第二释放类型的情况下,从所述第一内存块分配第二内存;其中,所述管理指令还包括第二内存,所述第二内存为所述第二释放类型对应的待分配内存的大小;
在分配成功的情况下,将分配后的第二内存对应的地址信息和所述第一名称信息写入第二存储容器,并发送分配成功结果至所述管理方;所述第二存储容器用于在接收到触发指令的情况下释放所述第二内存;
在分配失败的情况下,发送分配失败结果至所述管理方。
4.根据权利要求1所述的方法,其特征在于,在所述管理指令表征的操作类别为第二操作的情况下,所述释放所述第一内存块中的全部内存包括:
基于第一名称信息,在第二存储容器中进行查询;所述管理指令包括所述第一名称信息,所述第一名称信息用于表征所述第一内存块对应的名称,所述第二存储容器用于存储接收到触发指令后释放的内存;
在所述第二存储容器存在所述第一名称信息的情况下,释放所述第一内存块中的全部内存;
在释放所述第一内存块中的全部内存成功的情况下,在所述第二存储容器中删除所述第一名称信息和所述第一内存块中的全部内存对应的地址信息,并发送释放成功结果至所述管理方;
在释放所述第一内存块中的全部内存失败的情况下,发送释放失败结果至所述管理方。
5.根据权利要求1所述的方法,其特征在于,在所述管理指令表征的操作类别为第三操作的情况下,所述重新分配所述第一内存块中的至少部分内存包括:
基于第一名称信息的存储位置,确定目标存储容器;所述管理指令包括所述第一名称信息,所述第一名称信息用于表征所述第一内存块的名称,所述目标存储容器为第一存储容器或第二存储容器;
从所述第一内存块重新分配第三内存;所述管理指令包括第三内存,所述第三内存为待重新分配内存的大小;
在重新分配所述第三内存成功的情况下,更新所述目标存储容器存储的地址信息,并发送重新分配成功结果至所述管理方;
在重新分配所述第三内存失败的情况下,发送重新分配成功失败至所述管理方。
6.根据权利要求1所述的方法,其特征在于,所述方法包括:
在第四内存的存储时长达到释放时长的情况下,释放所述第四内存;第一存储容器存储有所述第四内存对应的地址信息、释放时长,以及第二名称信息,所述第二名称信息为所述第四内存所属第二内存块的名称信息;
在所述第一存储容器中删除所述地址信息、所述释放时长,以及所述第二名称信息。
7.一种终端,其特征在于,所述终端包括:
确定模块,用于在接收到管理方发送的管理指令的情况下,确定所述管理指令表征的操作类别和第一内存块;
处理模块,用于根据所述操作类别对所述第一内存块进行管理操作;
其中,所述管理操作包括以下任意一项:
在所述管理指令表征的操作类别为第一操作的情况下,分配所述第一内存块中的至少部分内存;
在所述管理指令表征的操作类别为第二操作的情况下,释放所述第一内存块中的全部内存;
在所述管理指令表征的操作类别为第三操作的情况下,重新分配所述第一内存块中的至少部分内存。
8.根据权利要求7所述的终端,其特征在于,所述处理模块具体用于:
在内存释放信息用于表征第一释放类型的情况下,从所述第一内存块分配所述第一内存;其中,所述管理指令包括第一内存、内存释放信息和第一名称信息,所述第一内存为所述第一释放类型对应的待分配内存的大小,所述内存释放信息包括释放时长,所述第一名称信息用于表征所述第一内存块对应的名称;
在分配成功的情况下,将分配后的第一内存对应的地址信息、所述释放时长以及所述第一名称信息写入第一存储容器,并发送分配成功结果至所述管理方;所述第一存储容器用于在所述第一内存的存储时长达到所述释放时长的情况下释放所述第一内存;
在分配失败的情况下,发送分配失败结果至所述管理方。
9.根据权利要求8所述的终端,其特征在于,所述处理模块具体用于:
在所述内存释放信息用于表征第二释放类型的情况下,从所述第一内存块分配第二内存;其中,所述管理指令还包括第二内存,所述第二内存为所述第二释放类型对应的待分配内存的大小;
在分配成功的情况下,将分配后的第二内存对应的地址信息和所述第一名称信息写入第二存储容器,并发送分配成功结果至所述管理方;所述第二存储容器用于在接收到触发指令的情况下释放所述第二内存;
在分配失败的情况下,发送分配失败结果至所述管理方。
10.根据权利要求7所述的终端,其特征在于,所述处理模块具体用于:
基于第一名称信息,在第二存储容器中进行查询;所述管理指令包括所述第一名称信息,所述第一名称信息用于表征所述第一内存块对应的名称,所述第二存储容器用于存储接收到触发指令后释放的内存;
在所述第二存储容器存在所述第一名称信息的情况下,释放所述第一内存块中的全部内存;
在释放所述第一内存块中的全部内存成功的情况下,在所述第二存储容器中删除所述第一名称信息和所述第一内存块中的全部内存对应的地址信息,并发送释放成功结果至所述管理方;
在释放所述第一内存块中的全部内存失败的情况下,发送释放失败结果至所述管理方。
11.根据权利要求7所述的终端,其特征在于,所述处理模块具体用于:
基于第一名称信息的存储位置,确定目标存储容器;所述管理指令包括所述第一名称信息,所述第一名称信息用于表征所述第一内存块的名称,所述目标存储容器为第一存储容器或第二存储容器;
从所述第一内存块重新分配第三内存;所述管理指令包括第三内存,所述第三内存为待重新分配内存的大小;
在重新分配所述第三内存成功的情况下,更新所述目标存储容器存储的地址信息,并发送重新分配成功结果至所述管理方;
在重新分配所述第三内存失败的情况下,发送重新分配成功失败至所述管理方。
12.根据权利要求7所述的终端,其特征在于,所述终端还包括:
释放模块,用于在第四内存的存储时长达到释放时长的情况下,释放所述第四内存;第一存储容器存储有所述第四内存对应的地址信息、释放时长,以及第二名称信息,所述第二名称信息为所述第四内存所属第二内存块的名称信息;
删除模块,用于在所述第一存储容器中删除所述地址信息、所述释放时长,以及所述第二名称信息。
13.一种通信设备,包括:收发机、存储器、处理器及存储在所述存储器上并可在所述处理器上运行的程序,所述处理器,用于读取存储器中的程序实现如权利要求1至7中任一项所述的内存管理方法中的步骤。
14.一种可读存储介质,用于存储程序,其特征在于,所述程序被处理器执行时实现如权利要求1至7中任一项所述的内存管理方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111196564.3A CN115981831A (zh) | 2021-10-14 | 2021-10-14 | 内存管理方法及相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111196564.3A CN115981831A (zh) | 2021-10-14 | 2021-10-14 | 内存管理方法及相关设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115981831A true CN115981831A (zh) | 2023-04-18 |
Family
ID=85974556
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111196564.3A Pending CN115981831A (zh) | 2021-10-14 | 2021-10-14 | 内存管理方法及相关设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115981831A (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105718319A (zh) * | 2016-02-23 | 2016-06-29 | 中国科学院微电子研究所 | 一种内存池版图解析方法和内存池装置 |
WO2016123908A1 (zh) * | 2015-02-06 | 2016-08-11 | 中兴通讯股份有限公司 | 一种内存越界的检测方法及装置 |
CN109669884A (zh) * | 2017-10-16 | 2019-04-23 | 华为技术有限公司 | 一种处理器系统和终端芯片 |
CN109977104A (zh) * | 2019-04-01 | 2019-07-05 | 重庆紫光华山智安科技有限公司 | 数据管理方法及装置 |
CN110162483A (zh) * | 2018-02-12 | 2019-08-23 | 上海寒武纪信息科技有限公司 | 静态内存碎片整理方法、装置、计算机设备及存储介质 |
-
2021
- 2021-10-14 CN CN202111196564.3A patent/CN115981831A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016123908A1 (zh) * | 2015-02-06 | 2016-08-11 | 中兴通讯股份有限公司 | 一种内存越界的检测方法及装置 |
CN105718319A (zh) * | 2016-02-23 | 2016-06-29 | 中国科学院微电子研究所 | 一种内存池版图解析方法和内存池装置 |
CN109669884A (zh) * | 2017-10-16 | 2019-04-23 | 华为技术有限公司 | 一种处理器系统和终端芯片 |
CN110162483A (zh) * | 2018-02-12 | 2019-08-23 | 上海寒武纪信息科技有限公司 | 静态内存碎片整理方法、装置、计算机设备及存储介质 |
CN109977104A (zh) * | 2019-04-01 | 2019-07-05 | 重庆紫光华山智安科技有限公司 | 数据管理方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105843656B (zh) | 磁盘空间不足的系统升级方法、终端设备及服务器 | |
CN103607428B (zh) | 一种访问共享内存的方法和装置 | |
CN108572845B (zh) | 分布式微服务集群的升级方法及相关系统 | |
CN109656889B (zh) | 基于区块链的文件系统实现方法、装置、设备和存储介质 | |
KR101856486B1 (ko) | 컴퓨팅 디바이스에서 수행되는 오픈 시스템과 메인프레임 시스템 사이의 양방향 호출 방법 | |
CN102130959A (zh) | 一种实现云存储资源调度的系统及方法 | |
US10404568B2 (en) | Agent manager for distributed transaction monitoring system | |
CN111124299A (zh) | 数据存储管理方法、装置、设备、系统及存储介质 | |
CN111338786A (zh) | 云平台资源的配额管理方法、装置和计算机设备 | |
CN111582824B (zh) | 云资源同步方法、装置、设备及存储介质 | |
CN109729121B (zh) | 一种云存储系统及用于云存储系统中实现自定义数据处理的方法 | |
JP2010272090A (ja) | 処理依頼先管理装置、処理依頼先管理プログラムおよび処理依頼先管理方法 | |
US9971611B2 (en) | Monitoring a mobile device application | |
CN115328611A (zh) | 虚拟机管理方法、装置、服务器及可读存储介质 | |
CN110688201A (zh) | 一种日志管理方法及相关设备 | |
CN117724852A (zh) | 一种云电脑计算资源分配方法及装置 | |
CN111522626B (zh) | 一种虚拟机列表生成方法、装置及电子设备 | |
CN104570967A (zh) | 基于Android系统的远程控制方法及系统 | |
CN115981831A (zh) | 内存管理方法及相关设备 | |
CN111857736B (zh) | 云计算产品的生成方法、装置、设备及存储介质 | |
CN113852610A (zh) | 报文处理方法、装置、计算机设备和存储介质 | |
CN113485761A (zh) | 针对资源访问请求的处理方法、装置、设备及介质 | |
CN110502354B (zh) | 一种Java智能卡及其应用程序接口的调用方法 | |
CN113760325A (zh) | 容器环境更新方法及装置 | |
JP6563807B2 (ja) | 情報処理システム、情報処理装置、処理制御方法、及び処理制御プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |