System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及内存管理,特别涉及一种内存划分方法、装置、设备及介质。
技术介绍
1、传统的内存管理方法往往采用静态或固定大小的内存分配方式,难以灵活适应不同任务功能的需求,随着任务复杂性的增加和系统资源的限制,智能化的内存管理方法日益受到关注。
2、例如,在bmc(baseboard management controller,即基板管理控制器)嵌入式系统联邦功能开发中,经常遇到内存问题。bmc的可用内存非常有限,目前只剩下约10m甚至更少,在这样的局限内,需要展示支持资产采集解析、告警解析转发、性能采集、固件升级等多项功能。然而,如果这些功能同时访问或执行,必然会导致内存超出问题。
3、当前,常用的内存分配方法主要有动态分区分配(dynamic partitioningallocation)和页式内存管理(paging memory management)等技术。动态分区分配是一种将内存分为不同大小的分区,根据程序的需求动态地分配和回收内存的方法,它可以根据任务功能的大小来分配不同大小的内存分区,但缺乏业务功能分组算法的智能特征。页式内存管理则是将内存按固定大小的页划分,并根据页面的使用情况进行分配和回收,虽然页式内存管理可以根据不同的页面需求进行内存分配,但缺乏对任务功能的明确划分和组织。
4、综上,如何提供一种高效可靠的内存划分方法,以适应不同任务功能的需求是目前有待解决的问题。
技术实现思路
1、有鉴于此,本专利技术的目的在于提供一种内存
2、第一方面,本申请公开了一种内存划分方法,包括:
3、确定当前目标系统中的所有功能任务,并基于业务需求对各所述功能任务进行内存消耗分析,以得到每一所述功能任务需要消耗的内存量;
4、基于各所述功能任务需要消耗的内存量,利用预设分组算法和当前限制内存对所有所述功能任务进行分组处理,以得到若干数量个分组;其中,每一所述分组内的所有所述功能任务需要消耗的总内存量不超过所述当前限制内存;
5、确定用于执行每一所述分组中的所有所述功能任务的线程数量,并将各所述分组中的所述功能任务分别分配至相应数量的线程,以利用所述线程执行各所述功能任务。
6、可选的,所述基于业务需求对各所述功能任务进行内存消耗分析,以得到每一所述功能任务需要消耗的内存量之后,还包括:
7、利用所述内存量对各所述功能任务进行标记,以将标记后的所述功能任务存储至预设任务队列;
8、相应的,所述基于各所述功能任务需要消耗的内存量,利用预设分组算法和当前限制内存对所有所述功能任务进行分组处理,以得到若干数量个分组,包括:
9、判断所述预设任务队列中是否存在待执行的功能任务;
10、若所述预设任务队列中不存在待执行的功能任务,则结束本次操作;
11、若所述预设任务队列中存在待执行的功能任务,则从所述预设任务队列中提取出预设时间段内的所有目标功能任务,并基于各所述目标功能任务携带的内存量,利用预设分组算法和当前限制内存对所有所述目标功能任务进行分组处理,以得到若干数量个分组;
12、在利用相应数量的线程执行完所述预设时间段内的所有目标功能任务后,重新跳转至所述判断所述预设任务队列中是否存在待执行的功能任务的步骤,直到执行完所述当前目标系统中的所有功能任务。
13、可选的,所述利用预设分组算法和当前限制内存对所有所述功能任务进行分组处理,以得到若干数量个分组,包括:
14、利用预设优先级分组策略和当前限制内存对所有所述功能任务进行分组处理,以得到若干个分组;
15、或,利用贪心算法和当前限制内存对所有所述功能任务进行分组处理,以得到若干个分组;
16、或,利用动态规划算法和当前限制内存对所有所述功能任务进行分组处理,以得到若干个分组。
17、可选的,所述利用预设优先级分组策略和当前限制内存对所有所述功能任务进行分组处理,以得到若干个分组,包括:
18、按照预先设置的任务优先级规则对所有所述功能任务进行排序处理,得到排序后的第一任务序列;
19、从所述第一任务序列中未被筛选过的功能任务中确定出当前优先级最高的第一功能任务,并将所述第一功能任务添加至新建分组;
20、按照优先级排序顺序从所述第一任务序列中未被筛选过的功能任务中筛选出第二功能任务添加至所述新建分组;其中,所述第一功能任务和所述第二功能任务需要消耗的总内存量不超过所述当前限制内存;
21、重复执行所述从所述第一任务序列中未被筛选过的功能任务中确定出当前优先级最高的第一功能任务的步骤,直到所述第一任务序列中的所有所述功能任务均被添加至对应的分组后,以得到若干个分组。
22、可选的,所述利用贪心算法和当前限制内存对所有所述功能任务进行分组处理,以得到若干个分组,包括:
23、按照各所述功能任务需要消耗的内存量从大到小的顺序对所有所述功能任务进行排序处理,得到排序后的第二任务序列;
24、从所述第二任务序列中未被筛选过的功能任务中确定出当前内存量最大的第三功能任务,并将所述第三功能任务添加至新建分组;
25、按照内存量排序顺序从所述第二任务序列中未被筛选过的功能任务中筛选出第四功能任务添加至所述新建分组;其中,所述第三功能任务和所述第四功能任务需要消耗的总内存量不超过所述当前限制内存;
26、重复执行所述从所述第二任务序列中未被筛选过的功能任务中确定出当前内存量最大的第三功能任务的步骤,直到所述第二任务序列中的所有所述功能任务均被添加至对应的分组后,以得到若干个分组。
27、可选的,所述确定用于执行每一所述分组中的所有所述功能任务的线程数量,包括:
28、确定每一所述分组中的功能任务数量;
29、基于所述功能任务数量确定出用于执行每一所述分组中的所有所述功能任务的线程数量;其中,所述功能任务数量与所述线程数量相同。
30、可选的,所述利用预设分组算法和当前限制内存对所有所述功能任务进行分组处理,以得到若干数量个分组之后,还包括:
31、若基于所述当前目标系统中的负载信息和资源信息确定需要更新所述当前限制内存,则重新利用所述预设分组算法和更新后限制内存对所有所述功能任务进行分组处理,以得到若干数量个分组。
32、第二方面,本申请公开了一种内存划分装置,包括:
33、内存消耗量获取模块,用于确定当前目标系统中的所有功能任务,并基于业务需求对各所述功能任务进行内存消耗分析,以得到每一所述功能任务需要消耗的内存量;
34、任务分组模块,用于基于各所述功能任务需要消耗的内存量,利用预设分组算法和当前限制内存对所有所述功能任务进行分组处理,以得到若干数量个分本文档来自技高网...
【技术保护点】
1.一种内存划分方法,其特征在于,包括:
2.根据权利要求1所述的内存划分方法,其特征在于,所述基于业务需求对各所述功能任务进行内存消耗分析,以得到每一所述功能任务需要消耗的内存量之后,还包括:
3.根据权利要求1所述的内存划分方法,其特征在于,所述利用预设分组算法和当前限制内存对所有所述功能任务进行分组处理,以得到若干数量个分组,包括:
4.根据权利要求3所述的内存划分方法,其特征在于,所述利用预设优先级分组策略和当前限制内存对所有所述功能任务进行分组处理,以得到若干个分组,包括:
5.根据权利要求3所述的内存划分方法,其特征在于,所述利用贪心算法和当前限制内存对所有所述功能任务进行分组处理,以得到若干个分组,包括:
6.根据权利要求1所述的内存划分方法,其特征在于,所述确定用于执行每一所述分组中的所有所述功能任务的线程数量,包括:
7.根据权利要求1至6任一项所述的内存划分方法,其特征在于,所述利用预设分组算法和当前限制内存对所有所述功能任务进行分组处理,以得到若干数量个分组之后,还包括:
8
9.一种电子设备,其特征在于,包括:
10.一种计算机可读存储介质,其特征在于,用于存储计算机程序;其中,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的内存划分方法的步骤。
...【技术特征摘要】
1.一种内存划分方法,其特征在于,包括:
2.根据权利要求1所述的内存划分方法,其特征在于,所述基于业务需求对各所述功能任务进行内存消耗分析,以得到每一所述功能任务需要消耗的内存量之后,还包括:
3.根据权利要求1所述的内存划分方法,其特征在于,所述利用预设分组算法和当前限制内存对所有所述功能任务进行分组处理,以得到若干数量个分组,包括:
4.根据权利要求3所述的内存划分方法,其特征在于,所述利用预设优先级分组策略和当前限制内存对所有所述功能任务进行分组处理,以得到若干个分组,包括:
5.根据权利要求3所述的内存划分方法,其特征在于,所述利用贪心算法和当前限制内存对所...
【专利技术属性】
技术研发人员:孙昊良,贾伟,
申请(专利权)人:济南浪潮数据技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。