一种内存分配方法、电子设备及存储介质组成比例

技术编号:22913851 阅读:15 留言:0更新日期:2019-12-24 21:49
本发明专利技术实施例提供一种内存分配方法、电子设备及存储介质,属于计算机技术领域。本发明专利技术实施例在电子设备的内存空间中预先划定一段连续内存区域作为第一内存区域,第一内存区域用于容纳不可移动数据。在为内存申请分配存储空间时,根据内存申请的数据存储信息为需要保存不可移动数据的内存申请优先分配第一内存区域内的存储空间,尽量使不可移动数据保存在第一内存区域内,以避免不可移动数据分散在整个内存空间中,在很大程度上缓解内存碎片过多时无法通过整合内存空间来减少内存碎片的问题,有利于高效利用内存空间,避免浪费内存空间。

【技术实现步骤摘要】
一种内存分配方法、电子设备及存储介质
本专利技术涉及计算机
,特别是涉及一种内存分配方法、电子设备及存储介质。
技术介绍
随着电子设备智能化的发展和所能实现的功能的增加,电子设备的操作系统越来越复杂,电子设备承载的应用程序越来越多。电子设备在运行过程中会频繁地申请和释放内存,在长时间运行过程中,电子设备的内存空间会产生大量内存碎片,导致电子设备具有新的内存需求时申请不到内存或需要较长的时间才能申请到内存,表现为电子设备出现卡顿现象,甚至引起系统崩溃。当电子设备的内存空间中的内存碎片过多时,通常可以对内存空间进行整合,将被占用的内存区域整合在一起,以减少内存碎片。但是,被占用的内存区域中可能存储有可移动数据,也可能存储有不可移动数据,并且电子设备运行的时间越长,内存中存储的不可移动数据的数量越多。由于不可移动数据所占用的内存区域无法进行整合,因此电子设备长时间使用后,通过整合内存空间的方式并不能有效解决内存碎片过多的问题。
技术实现思路
本专利技术实施例提供了一种内存分配方法、电子设备及存储介质,用以解决现有技术中无法通过整合内存空间减少内存碎片的问题。第一方面,本专利技术实施例提供了一种内存分配方法,包括:当接收到内存申请时,确定所述内存申请要保存的数据的数据存储信息;根据所述数据存储信息为所述内存申请分配存储空间;所述存储空间位于第一内存区域或第二内存区域;所述第一内存区域为在内存空间中预先划定的用于容纳不可移动数据的连续内存区域,所述第二内存区域为内存空间中除第一内存区域之外的内存区域,其中所述不可移动数据为存储在内存空间后不可改变存储地址的数据。本专利技术实施例提供的内存分配方法,在电子设备的内存空间中预先划定一段连续内存区域作为第一内存区域,第一内存区域用于容纳不可移动数据。在为内存申请分配存储空间时,根据内存申请的数据存储信息为需要保存不可移动数据的内存申请优先分配第一内存区域内的存储空间,尽量使不可移动数据保存在第一内存区域内,以避免不可移动数据分散在整个内存空间中,在很大程度上缓解内存碎片过多时无法通过整合内存空间来减少内存碎片的问题,有利于高效利用内存空间,避免浪费内存空间。在一种可能的实现方式中,所述数据存储信息包括数据类型;所述根据所述数据存储信息为所述内存申请分配存储空间,包括:若所述数据类型为不可移动数据,在所述第一内存区域为所述内存申请分配存储空间;或若所述数据类型为可移动数据,在所述第二内存区域为所述内存申请分配存储空间。上述方法中,若内存申请要保存的数据为不可移动数据,在第一内存区域为内存申请分配存储空间,若内存申请要保存的数据为可移动数据,在第二内存区域为内存申请分配存储空间,从而使不可移动数据均保存在第一内存区域内,在第二内存区域内仅保存可移动数据,有效解决因不可移动数据分散在整个内存空间而导致无法通过整合内存空间来减少内存碎片的问题。在一种可能的实现方式中,所述数据存储信息包括数据类型和数据大小;所述根据所述数据存储信息为所述内存申请分配存储空间,包括:若所述数据类型为不可移动数据,且所述数据大小大于或等于第一内存区域内的空闲区域,在所述第二内存区域内为所述内存申请分配存储空间;或若所述数据类型为可移动数据,且所述数据大小大于或等于第二内存区域内的空闲区域,在所述第一内存区域为所述内存申请分配存储空间;或若所述数据类型为不可移动数据,且所述数据大小小于或等于设定阈值,在所述第一内存区域为所述内存申请分配存储空间。上述方法中,若内存申请要保存的数据为不可移动数据,但第一内存区域内没有足够的空闲区域用于保存该不可移动数据,则可以在第二内存区域内为该内存申请分配存储空间;若内存申请要保存的数据为可移动数据,但第二内存区域内没有足够的空闲区域用于保存该可移动数据,则可以在第一内存区域内为该内存申请分配存储空间,从而可以实现内存区域的灵活使用,避免浪费内存空间。由于用于容纳不可移动数据的第一内存区域通常较小,若内存申请要保存的数据为不可移动数据,且该不可移动数据的数据大小较小,则在第一内存区域为内存申请分配存储空间。若内存申请要保存的数据为不可移动数据,但该不可移动数据的数据大小过大,为了避免该不可移动数据在第一内存区域内占用较多的内存空间,则可以不在第一内存区域为该内存申请分配存储空间。在一种可能的实现方式中,若所述数据类型为不可移动数据,且所述数据大小小于或等于设定阈值,在所述第一内存区域为所述内存申请分配存储空间,包括:若所述数据大小大于或等于第一内存区域内的空闲区域,且所述第一内存区域内包含可移动数据,且所述可移动数据的数据大小小于第二内存区域内的空闲区域,将所述可移动数据迁移至所述第二内存区域,在所述第一内存区域为所述内存申请分配存储空间;或若所述数据大小大于或等于第一内存区域内的空闲区域,且所述第一内存区域内包含可移动数据,且所述可移动数据的数据大小大于或等于第二内存区域内的空闲区域,清除所述可移动数据,在所述第一内存区域为所述内存申请分配存储空间。上述方法中,若内存申请要保存的数据为不可移动数据,且该不可移动数据的数据大小较小,但第一内存区域内没有足够的空闲区域用于保存该不可移动数据,则可以先将第一内存区域中保存的可移动数据迁移至第二内存区域,再在第一内存区域内为该内存申请分配存储空间。若第二内存区域没有足够的空闲区域用于保存需要迁移的可移动数据,则可以清除该可移动数据,释放第一内存区域内对应的内存空间,用于保存上述不可移动数据。该方法在第一内存区域内空闲区域不足时,将第一内存区域内空闲区域中保存的可移动数据迁移或清除,保证第一内存区域优先存储不可移动数据。在一种可能的实现方式中,通过如下方式确定所述内存申请要保存的数据的数据类型:根据所述内存申请中的数据类型标记位,确定所述内存申请要保存的数据的数据类型。上述方法中,在内存申请中增加了数据类型标记位,用于标记内存申请要保存的数据的数据类型,有利于快速获取内存申请对应的数据类型,便于根据数据类型为内存申请分配存储空间。第二方面,本专利技术实施例提供了一种电子设备,包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的计算机程序,当所述计算机程序被所述处理器执行时,使得所述处理器执行如下步骤:当接收到内存申请时,确定所述内存申请要保存的数据的数据存储信息;根据所述数据存储信息为所述内存申请分配存储空间;所述存储空间位于第一内存区域或第二内存区域;所述第一内存区域为在内存空间中预先划定的用于容纳不可移动数据的连续内存区域,所述第二内存区域为内存空间中除第一内存区域之外的内存区域,其中所述不可移动数据为存储在内存空间后不可改变存储地址的数据。在一种可能的实现方式中,所述数据存储信息包括数据类型;所述处理器具体执行:若所述数据类型为不可移动数据,在所述第一内存区域为所述内存申请分配存储空间;或若所述数据类型为可移动数据,本文档来自技高网...

【技术保护点】
1.一种内存分配方法,其特征在于,包括:/n当接收到内存申请时,确定所述内存申请要保存的数据的数据存储信息;/n根据所述数据存储信息为所述内存申请分配存储空间;所述存储空间位于第一内存区域或第二内存区域;所述第一内存区域为在内存空间中预先划定的用于容纳不可移动数据的连续内存区域,所述第二内存区域为内存空间中除第一内存区域之外的内存区域,其中所述不可移动数据为存储在内存空间后不可改变存储地址的数据。/n

【技术特征摘要】
1.一种内存分配方法,其特征在于,包括:
当接收到内存申请时,确定所述内存申请要保存的数据的数据存储信息;
根据所述数据存储信息为所述内存申请分配存储空间;所述存储空间位于第一内存区域或第二内存区域;所述第一内存区域为在内存空间中预先划定的用于容纳不可移动数据的连续内存区域,所述第二内存区域为内存空间中除第一内存区域之外的内存区域,其中所述不可移动数据为存储在内存空间后不可改变存储地址的数据。


2.如权利要求1所述的方法,其特征在于,所述数据存储信息包括数据类型;
所述根据所述数据存储信息为所述内存申请分配存储空间,包括:
若所述数据类型为不可移动数据,在所述第一内存区域为所述内存申请分配存储空间;或
若所述数据类型为可移动数据,在所述第二内存区域为所述内存申请分配存储空间。


3.如权利要求1所述的方法,其特征在于,所述数据存储信息包括数据类型和数据大小;
所述根据所述数据存储信息为所述内存申请分配存储空间,包括:
若所述数据类型为不可移动数据,且所述数据大小大于或等于第一内存区域内的空闲区域,在所述第二内存区域内为所述内存申请分配存储空间;或
若所述数据类型为可移动数据,且所述数据大小大于或等于第二内存区域内的空闲区域,在所述第一内存区域为所述内存申请分配存储空间;或
若所述数据类型为不可移动数据,且所述数据大小小于或等于设定阈值,在所述第一内存区域为所述内存申请分配存储空间。


4.如权利要求3所述的方法,其特征在于,若所述数据类型为不可移动数据,且所述数据大小小于或等于设定阈值,在所述第一内存区域为所述内存申请分配存储空间,包括:
若所述数据大小大于或等于第一内存区域内的空闲区域,且所述第一内存区域内包含可移动数据,且所述可移动数据的数据大小小于第二内存区域内的空闲区域,将所述可移动数据迁移至所述第二内存区域,在所述第一内存区域为所述内存申请分配存储空间;或
若所述数据大小大于或等于第一内存区域内的空闲区域,且所述第一内存区域内包含可移动数据,且所述可移动数据的数据大小大于或等于第二内存区域内的空闲区域,清除所述可移动数据,在所述第一内存区域为所述内存申请分配存储空间。


5.如权利要求2或3所述的方法,其特征在于,通过如下方式确定所述内存申请要保存的数据的数据类型:
根据所述内存申...

【专利技术属性】
技术研发人员:李川王旭峰
申请(专利权)人:青岛海信移动通信技术股份有限公司
类型:发明
国别省市:山东;37

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

1