一种内存资源控制方法及装置转让专利
申请号 : CN201910390847.8
文献号 : CN110109760B
文献日 : 2021-07-02
发明人 : 王正魁 , 柯洁 , 贾志强
申请人 : 达闼机器人有限公司
摘要 :
权利要求 :
1.一种内存资源控制方法,其特征在于,包括:为M个任务启动N个服务、并在所述N个服务中加载所述M个任务中部分任务的任务模型,其中,所述N小于所述M,所述N大于1;
判断待处理任务的任务模型是否已在所述N个服务中被加载;
若未被加载,则在所述N个服务中选择一个服务作为目标服务,并将所述目标服务加载的任务模型替换为所述待处理任务的任务模型;
所述在所述N个服务中加载所述M个任务中部分任务的任务模型之后,还包括:为所述N个服务上加载的任务模型对应的任务建立任务链表;
所述在所述N个服务中选择一个服务作为目标服务,具体包括:将所述任务链表中链表尾的任务所对应的任务模型确定为选中任务模型;
将加载有所述选中任务模型的服务作为所述目标服务。
2.根据权利要求1所述的内存资源控制方法,其特征在于,所述将所述目标服务加载的任务模型替换为所述待处理任务的任务模型之后,还包括:将所述待处理任务添加至所述任务链表的链表头,并删除所述任务链表中链表尾的任务。
3.根据权利要求1所述的内存资源控制方法,其特征在于,所述判断待处理任务的任务模型是否已在所述N个服务中被加载之前,还包括:判断所述待处理任务是否为非常用任务;
若判定所述待处理任务为非常用任务,则再执行所述判断待处理任务的任务模型是否已在所述N个服务中被加载。
4.根据权利要求3所述的内存资源控制方法,其特征在于,在所述判断所述待处理任务是否为非常用任务之后,还包括:若判定所述待处理任务为常用任务时,则为所述待处理任务启动固定服务,其中,每个所述常用任务对应一个所述固定服务。
5.根据权利要求1所述的内存资源控制方法,其特征在于,所述判断待处理任务的任务模型是否已在所述N个服务中被加载之前,还包括:判断所述N是否小于预设阈值;
若小于所述预设阈值,则计算系统的平均时间延迟;
判断所述平均时间延迟是否大于预设延迟上限;
若是,则启动新的服务。
6.根据权利要求1所述的内存资源控制方法,其特征在于,所述判断待处理任务的任务模型是否已在所述N个服务中被加载之前,还包括:判断所述N是否小于预设阈值;
若小于所述预设阈值,则启动新的服务。
7.根据权利要求1所述的内存资源控制方法,其特征在于,所述为M个任务启动N个服务之后,还包括:
定时计算系统的平均时间延迟;
判断所述平均时间延迟是否小于预设延迟下限;
若所述平均时间延迟小于所述预设延迟下限,则停止所述N个服务中至少一个服务。
8.一种内存资源控制装置,其特征在于,包括:至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如权利要求1至7中任一所述的内存资源控制方法。
9.一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7中任一所述的内存资源控制方法。
说明书 :
一种内存资源控制方法及装置
技术领域
背景技术
的任务模型。为了及时响应各个任务的会话请求,通常需要启动多个服务。
此,当要处理的任务很多,但调用不频繁时,会浪费非常多的内存资源,不利于内存资源的
节约。
发明内容
大于1;判断待处理任务的任务模型是否已在N个服务中被加载;若未被加载,则在N个服务
中选择一个服务作为目标服务,并将目标服务加载的任务模型替换为待处理任务的任务模
型。
指令,指令被至少一个处理器执行,以使至少一个处理器能够执行上述内存资源控制方法。
载,则将N个服务中的目标服务上加载的任务模型替换为待处理任务的任务模型,保证服务
数目保持不变,且避免为所有的任务开启相应数目的服务,而导致未使用的服务过多从而
占用内存资源,有利于节约系统内存资源。
体包括:将任务链表中链表尾的任务所对应的任务模型确定为选中任务模型;将加载有选
中任务模型的服务作为目标服务。
理任务添加至任务链表的链表头,并删除任务链表中链表尾的任务,从而确保任务链表中
的任务对应的任务模型均是被加载在服务中的。
务的任务模型是否已在N个服务中被加载。该方案中为非常用任务提供小于其数目的服务,
通过替换服务上的任务模型从而实现对所有非常用任务的处理。
中为每个常用任务提供一固定服务,从而避免由于常用任务被经常调用而出现服务上的任
务模型被频繁替换的情况出现,节约了系统的任务处理时间。
大于预设延迟上限;若是,则启动新的服务。该方案中通过判断系统的平均时间延迟是否大
于预设延迟上限,当大于预设延迟上限时,启动新的服务,进一步确保服务数目更加符合系
统的并发量需求,使得系统的平均时间延迟控制在合理范围内。
值时,启动新的服务,从而避免服务数目过少而导致服务上的任务模型被频繁替换的情况
出现,节约了系统处理时间。
中至少一个服务。该方案中通过在平均时间延迟小于预设延迟下限时,停止N个服务中至少
一个服务,以进一步降低未使用的服务对内存资源的占用,节约系统内存资源。
附图说明
非有特别申明,附图中的图不构成比例限制。
具体实施方式
式中,为了使读者更好地理解本申请而提出了许多技术细节。但是,即使没有这些技术细节
和基于以下各实施方式的种种变化和修改,也可以实现本申请所要求保护的技术方案。
分任务的任务模型,其中,N小于M,N大于1;判断待处理任务的任务模型是否已在N个服务中
被加载;若未被加载,则在N个服务中选择一个服务作为目标服务,并将目标服务加载的任
务模型替换为待处理任务的任务模型。通过为M个任务启动小于M的N个服务,判断待处理任
务的任务模型是否已在N个服务中被加载,若未加载,则将N个服务中的目标服务上加载的
任务模型替换为待处理任务的任务模型,保证服务数目保持不变,且避免为所有的任务开
启相应数目的服务,而导致未使用的服务过多从而占用内存资源,有利于节约系统内存资
源。
部分任务的任务模型,减少了处理任务的服务数目,从而避免为每个任务启动一个服务来
加载该任务对应的任务模型。
务模型替换为该待处理任务的任务模型,从而实现了N个服务对于M个任务的任务模型的替
换处理,保证N个服务能够满足M个任务的任务处理需求。本实施方式中可为已启动的任务
(即任务模型被加载的任务)建立已启动任务集合,并在加载任务模型时,更新该已启动任
务集合,可通过在该已启动任务集合中查找是否有该待处理任务,从而判断该待处理任务
的任务模型是否在N个服务中被加载。
理任务的任务模型在该目标服务上被加载,使得不增加服务数目也能够满足M个任务的处
理需求,从而避免服务数目过多而导致服务未被使用但依旧占用内存资源,从而有利于节
约系统内存资源。
具体包括:将任务链表中链表尾的任务所对应的任务模型确定为选中任务模型;将加载有
选中任务模型的服务作为目标服务。
中链表尾的任务对应的选中任务模型,并将加载该选中任务模型的服务作为目标服务,并
将目标服务上加载的选中任务模型替换为待处理任务的任务模型,从而实现对待处理任务
的处理。
中的任务对应的任务模型均是被加载在服务中的。
为:服务A上加载航班的任务模型、服务B上加载音乐的任务模型、服务C上加载导航的任务
模型、服务D上加载预订酒店的任务模型。为这四个已启动的任务建立任务链表,根据任务
模型加载的时间顺序进行排序,从链表头至链表尾任务对应的任务模型在服务上加载的时
间越久,依次为:音乐、航班、导航、预订酒店。若待处理任务为“天气”,则根据任务链表可以
确定该任务模型并未启动,此时,确定任务链表中链表尾的任务为“预订酒店”,并确定加载
当前“预订酒店”任务对应的任务模型的目标服务D,将目标服务D上的任务模型替换为待处
理任务“天气”的任务模型,并更新任务链表从链表头至链表尾依次为:天气、音乐、航班、导
航。
则将N个服务中的目标服务上加载的任务模型替换为待处理任务的任务模型,保证服务数
目保持不变,且避免为所有的任务开启相应数目的服务,而导致未使用的服务过多从而占
用内存资源,有利于节约系统内存资源。
判断待处理任务为常用任务时,启动该常用任务对应的固定服务。从而避免了常用任务被
频繁调用或停止,而使得服务上的任务模型被经常替换的情况出现,从而节约系统处理的
时间。
避免由于常用任务被经常调用而出现服务上的任务模型被频繁替换的情况出现,节约了系
统的任务处理时间。对于非常用任务而言,由于不会经常性被调用,因此,可以为非常用任
务提供小于其数目的服务,通过替换服务上的任务模型从而实现对所有非常用任务的处
理、且避免为所有的任务开启相应数目的服务而导致未使用的服务过多从而占用内存资
源,有利于节约系统内存资源。
务;判断待处理任务是否为常用任务;若是,则为待处理任务的任务模型启动固定服务。该
方案中为每个常用任务启动一个固定服务,并在判断待处理任务为常用任务时,启动该常
用任务对应的固定服务,从而避免了常用任务被频繁调用或停止,而使得服务上的任务模
型被经常替换的情况出现,从而节约系统处理的时间。
服务,从而避免服务数目过少而导致服务上的任务模型被频繁替换的情况出现,进一步节
约了系统处理时间。
上任务模型的替换频率较高,从而导致系统的并发量降低。因此,本实施方式中对于服务数
目N的调整如下:一种方式为:由管理人员综合考虑内存资源、并发量要求等因素确定一个
合理的N值;另一种方式如本实施方式中示出的:管理人员根据内存资源确定服务数目的预
设阈值,若启动的服务数目N小于该预设阈值,则表明服务数目过少,此时需要启动新的服
务来降低服务上任务模型的替换频率较高,从而提高系统的并发量。
迟是否大于预设延迟上限;若是,则启动新的服务。
平均时间延迟是否大于预设延迟上限T1,当大于预设延迟上限T1时,表明系统的并发量较
低,启动的服务数目较少,此时需启动新的服务,进一步确保服务数目更加符合系统的并发
量需求,使得系统的平均时间延迟控制在合理范围内。
服务中至少一个服务。
预设延迟下限T2,若平均时间延迟小于预设延迟下限T2,则表明系统并发量较高,当前的处
理任务数目较少,启动的服务数目过多,此时,可停止N个服务中至少一个服务,以进一步降
低未使用的服务对内存资源的占用,节约系统内存资源,进一步确保服务数目更加符合系
统的并发量需求。
则本实施方式中的N个服务应更新为N+1个服务,当再次出现待处理任务时,应判断该待处
理任务的任务模型是否已在“N+1个服务”中被加载。
设延迟上限为T1=20ms、预设延迟下限为T2=10ms。
当前服务数目N=4小于最大值L=10,故可以启动新的服务,此时启动新的服务,并在f该新
的服务上加载处理天气任务的模型,之后更新任务链表,此时,任务链表中从头到尾的5个
任务分别为天气、音乐、航班、导航、预订酒店。
启动新的服务来降低时间延迟、满足系统并发量的要求,此时再启动新的服务来加载“天
气”的任务模型。
设阈值,则启动新的服务。本实施方中当服务数目N小于预设阈值时,启动新的服务,从而避
免服务数目过少而导致服务上的任务模型被频繁替换的情况出现,进一步节约了系统处理
时间。
内;对算法中或者流程中添加无关紧要的修改或者引入无关紧要的设计,但不改变其算法
和流程的核心设计都在该专利的保护范围内。
少一个处理器401执行的指令,指令被至少一个处理器401执行,以使至少一个处理器401能
够执行上述的内存资源控制方法。
以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路连接在一起,这些都是
本领域所公知的,因此,本文不再对其进行进一步描述。总线接口在总线和收发机之间提供
接口。收发机可以是一个元件,也可以是多个元件,比如多个接收器和发送器,提供用于在
传输介质上与各种其他装置通信的单元。经处理器401处理的数据通过天线在无线介质上
进行传输,进一步,天线还接收数据并将数据传送给处理器401。
操作时所使用的数据。
得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方
法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read‑Only
Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程
序代码的介质。