静态内存碎片整理方法、装置、计算机设备及存储介质制造方法及图纸

技术编号:21952168 阅读:29 留言:0更新日期:2019-08-24 17:37
本发明专利技术涉及一种静态内存碎片的整理方法、装置、计算机设备及存储介质,可以在静态期进行内存碎片整理,包括如下步骤:访问的为指令列表中的静态内存碎片整理指令时首先获取内存的多个资源,以及该多个资源的当前地址;之后为各所述资源在预设内存区域重新分配的目标地址;最后将各资源从当前地址移动至目标地址,并在各资源的资源地址列表中记录目标地址和该目标地址对应的引用时段。上述静态内存碎片的整理方法、装置、计算机设备及存储介质可以使内存的利用效率提高。

Static Memory Fragmentation Method, Device, Computer Equipment and Storage Media

【技术实现步骤摘要】
静态内存碎片整理方法、装置、计算机设备及存储介质
本专利技术涉及信息技术计算机
,特别是涉及一种静态内存碎片整理方法、装置、计算机设备及存储介质。
技术介绍
随着计算机技术的飞速发展,出现了诸如多核处理器计算机系统(Multi-coreprocessorComputingSystem)、异构计算机系统(HeterogeneousComputingSystem)等包含有多个处理器的多处理器计算机系统(Multi-processorComputingSystem)。在上述计算机系统的多个处理器可以根据多个处理器对应的指令列表并行处理不同的指令,提高该计算机系统的处理效率。但是,上述计算机系统的多个处理器在根据指令列表引用资源执行相应操作时,可能会由于内存上存在内存碎片,导致在理论内存充足的情形下,程序执行失败。因此,如何提高系统内存的利用效率便成为亟需解决的技术问题。
技术实现思路
基于此,有必要针对内存的利用效率低问题,提供一种静态内存碎片整理方法、装置、计算机设备及存储介质。一种静态内存碎片整理方法,包括如下步骤:判断当前访问的指令列表中的指令的指令类型;若当前访问的指令的指令类型为静态内存碎片整理指令,则获取内存上的多个资源,以及所述多个资源中各资源的当前地址;为各资源在预设存储区域重新分配目标地址;将各资源从当前地址移动至为各资源分配的目标地址,并在各资源的资源地址列表中记录对应的目标地址和所述目标地址对应的引用时段。在其中一个实施例中,包括:若当前访问的指令的指令类型不是静态内存碎片整理指令,则查询当前访问的指令引用资源的资源地址列表,得到当前访问的指令引用资源的当前地址;在所述当前访问的指令引用资源的当前地址上执行当前访问的指令的相应操作。在其中一个实施例中,在获取内存上的多个资源,以及所述多个资源中各所述资源的当前地址的步骤之前,包括如下步骤:若某一资源对应的所有指令完成相应操作,则释放完成相应操作的资源在所述内存上的相应存储区域。在其中一个实施例中,所述为各所述资源在预设存储区域重新分配的目标地址的步骤包括:获取各资源的生命周期;按照各资源生命周期的长短,在所述预设存储区域为各资源从低地址向高地址依次分配目标地址,或者在所述预设存储区域为各资源从高地址向低地址依次分配目标地址。在其中一个实施例中,所述为各资源在预设内存区域重新分配的目标地址的步骤包括:分别获取第一内存区域上各资源的生命周期和/或第二内存区域上各资源的生命周期;根据所述第一内存区域上的各资源的生命周期,在第一内存区域上为所述第一内存区域上的各资源从低地址向高地址依次分配目标地址;根据所述第二内存区域上的各资源的生命周期,在第二内存区域上为所述第二内存区域上的各资源从高地址向低地址依次分配目标地址;其中,所述第一内存区域对应所述内存的低地址区域,所述第二内存区域对应所述内存的高地址区域。在其中一个实施例中,所述将各资源从当前地址移动至为各资源分配的目标地址的步骤包括:计算各资源的当前地址与各资源的目标地址之间的差值,并根据所述差值对应的存储区域的空间大小拆分所述资源,得到小于等于所述空间大小的多个资源碎片;若某一资源碎片的目标地址对应的存储区域空闲,则移动目标地址对应的存储区域空闲的资源碎片至所述空闲的存储区域;若某一资源碎片的目标地址对应的存储区域被占用,则移动除所述某一资源碎片之外的其他资源碎片至对应的存储区域。在其中一个实施例中,所述方法还包括:根据所述静态内存碎片整理指令设置所述内存上各资源的目标地址对应的引用时段。在其中一个实施例中,所述根据所述静态内存碎片整理指令设置所述内存上各资源的目标地址对应的引用时段的步骤包括:根据每一静态内存碎片整理指令访问完毕的时刻设置所述内存上各资源的目标地址对应的引用时段,或者根据访问静态内存碎片整理指令的次数设置所述内存上各资源的目标地址对应的引用时段。在其中一个实施例中,所述方法包括:当访问的指令的指令类型为内存分配指令时,若内存分配操作失败,则在所述访问的内存分配指令之后插入静态内存碎片整理指令;访问所述插入的静态内存碎片整理指令,得到整理后的内存;重新访问所述内存分配指令。在其中一个实施例中,所述若指令列表中的内存分配指令执行失败,则在所述内存分配指令之后插入静态内存碎片整理指令的步骤包括:计算当前理论剩余内存;若所述待分配资源的大小不大于所述理论剩余内存,且所述待分配资源分配内存失败,则在所述内存分配指令之后插入所述静态内存碎片整理指令。在其中一个实施例中,所述方法包括:在所述当前访问的指令列表的预设位置插入所述静态内存碎片整理指令得到新指令列表。在其中一个实施例中,所述在指令列表的预设位置插入并执行所述静态内存碎片整理指令的步骤包括:在所述当前访问的指令列表中的内存分配指令之前插入所述静态内存碎片整理指令,得到新指令列表。一种静态内存整理装置,包括:访问模块,用于访问指令列表中的指令,并判断所述指令的类型;获取模块,用于在访问的为指令列表中的静态内存碎片整理指令时,获取指令列表中多条指令引用的多个资源,以及所述多个资源中各所述资源的当前地址;内存分配模块,用于为各资源在预设内存区域重新分配的目标地址;资源移动模块,用于将各资源从所述当前地址移动至为各资源分配的目标地址,并在各资源的资源地址列表中记录对应的目标地址和所述目标地址对应的引用时段。一种计算机设备,包括存储器、处理器,存储器上存储有在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述方法的步骤。一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述的方法的步骤。一种静态内存碎片的整理方法装置、计算机设备及存储介质,可以在静态期进行内存碎片整理,包括如下步骤:访问的为指令列表中的静态内存碎片整理指令时首先获取内存的多个资源,以及该多个资源的当前地址;之后为各所述资源在预设内存区域重新分配的目标地址;最后将各资源从当前地址移动至目标地址,并在各资源的资源地址列表中记录目标地址和该目标地址对应的引用时段。该方法可以实现处理器根据执行指令列表执行相关的操作过程中,对内存碎片进行整理,有效地减少了在程序执行过程中由于内存碎片的存在,导致程序在理论内存充足的情形下,执行失败的问题,使内存的利用效率提高。附图说明图1为其中一个实施例中提出的计算机系统的结构示意图;图2为其中一个实施例中提出的内存结构示意图;图3为其中一个实施例中提出的一种静态内存碎片整理方法的步骤流程图;图4为其中一个实施例中提出的资源A某一地址列表图;图5为其中一个实施例中提出的资源A某一地址列表图;图6为其中一个实施例中提出的某时刻内存上的资源分布图;图7为其中一个实施例中提出的某时刻内存上的资源分布图;图8为其中一个实施例中提出的某时刻内存上的资源分布图;图9为其中一个实施例中提出的资源A、资源B某一地址列表图;图10为其中一个实施例中提出的资源A、资源B某一地址列表图;图11为其中一个实施例中提出的静态内存碎片整理装置结构示意图;图12为其中一个实施例中提出的计算机设备内部结构图。具体实施方式为了使本专利技术的专利技术目的、技术方案及技术效果更加清楚明白,以下结合附图对本专利技术的具体实施例进行描述。应当理解,本文档来自技高网...

【技术保护点】
1.一种静态内存碎片整理方法,其特征在于,包括如下步骤:判断当前访问的指令列表中的指令的指令类型;若当前访问的指令的指令类型为静态内存碎片整理指令,则获取内存上的多个资源,以及所述多个资源中各资源的当前地址;为各资源在预设存储区域重新分配目标地址;将各资源从当前地址移动至为各资源分配的目标地址,并在各资源的资源地址列表中记录对应的目标地址和所述目标地址对应的引用时段。

【技术特征摘要】
1.一种静态内存碎片整理方法,其特征在于,包括如下步骤:判断当前访问的指令列表中的指令的指令类型;若当前访问的指令的指令类型为静态内存碎片整理指令,则获取内存上的多个资源,以及所述多个资源中各资源的当前地址;为各资源在预设存储区域重新分配目标地址;将各资源从当前地址移动至为各资源分配的目标地址,并在各资源的资源地址列表中记录对应的目标地址和所述目标地址对应的引用时段。2.根据权利要求1所述的静态内存碎片整理方法,其特征在于,还包括如下步骤:若当前访问的指令的指令类型不是静态内存碎片整理指令,则查询当前访问的指令引用资源的资源地址列表,得到当前访问的指令引用资源的当前地址;在所述当前访问的指令引用资源的当前地址上执行当前访问的指令的相应操作。3.根据权利要求1所述的静态内存碎片整理方法,其特征在于,在获取内存上的多个资源,以及所述多个资源中各所述资源的当前地址的步骤之前,包括如下步骤:若某一资源对应的所有指令完成相应操作,则释放完成相应操作的资源在所述内存上的相应存储区域。4.根据权利要求1所述的静态内存碎片整理方法,其特征在于,所述为各资源在预设存储区域重新分配的目标地址的步骤包括:获取各资源的生命周期;按照各资源生命周期的长短,在所述预设存储区域为各资源从低地址向高地址依次分配目标地址,或者在所述预设存储区域为各资源从高地址向低地址依次分配目标地址。5.根据权利要求1所述的静态内存碎片整理方法,其特征在于,所述为各资源在预设内存区域重新分配的目标地址的步骤包括:分别获取第一内存区域上各资源的生命周期和/或第二内存区域上各资源的生命周期;根据所述第一内存区域上的各资源的生命周期,在第一内存区域上为所述第一内存区域上的各资源从低地址向高地址依次分配目标地址;根据所述第二内存区域上的各资源的生命周期,在第二内存区域上为所述第二内存区域上的各资源从高地址向低地址依次分配目标地址;其中,所述第一内存区域对应所述内存的低地址区域,所述第二内存区域对应所述内存的高地址区域。6.根据权利要求1所述的静态内存碎片整理方法,其特征在于,所述将各资源从当前地址移动至为各资源分配的目标地址的步骤包括:计算各资源的当前地址与各资源的目标地址之间的差值,并根据所述差值对应的存储区域的空间大小拆分所述资源,得到小于等于所述空间大小的多个资源碎片;若某一资源碎片的目标地址对应的存储区域空闲,则移动目标地址对应的存储区域空闲的资源碎片至所述空闲的存储区域;若某一资源碎片的目标地址对应的存储区域被占用,则移动除所述某一资源碎片之外的其他资源碎片至对应的存储区域。7...

【专利技术属性】
技术研发人员:不公告发明人
申请(专利权)人:上海寒武纪信息科技有限公司
类型:发明
国别省市:上海,31

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

1