一种内存管理方法_5

文档序号:8543746阅读:来源:国知局
,处理器1001可各自计算出所述不包含所述第二类程序引用的活动对象的内存片段外的活动对象移动至所述不包含所述第二类程序引用的活动对象的内存片段的移动时间总量,并将对应移动时间总量最小的所述不包含所述第二类程序引用的活动对象的内存片段选定为所述目标区域。
[0149]进一步的,在将所述第一类程序引用的活动对象移动至所述目标区域之前,处理器1001还可以判断所述目标区域中是否包含所述第一类程序引用的活动对象,若是,则将所述目标区域中的所述第一类程序引用的活动对象移动至所述目标区域的一端。
[0150]更进一步的,在接收清理指令之后,处理器1001还可以释放所述预设内存中的垃圾对象所占内存。
[0151]更进一步的,在将所述第一类程序引用的活动对象移动至所述目标区域之后,处理器1001还可以监测运行在所述目标区域内的所述第二类程序是否变成所述第一类程序,若是,则将转变成所述第一类程序的所述第二类程序所引用的活动对象移动至所述目标区域的一端。
[0152]更进一步的,在所述将所述第一类程序引用的活动对象移动至所述目标区域之后,处理器1001还可以监测运行在所述目标区域外的所述第二类程序是否变成所述第一类程序,若是,则将转变成所述第一类程序的所述第二类程序所引用的活动对象移动至所述目标区域。
[0153]可理解的是,处理器1001执行的步骤还可以参考上述图1到图3方法实施例中的具体实现方式,这里不再赘述。
[0154]需要说明,上述全部内容中所涉及的程序还可以是单独的线程、进程,或者它们的组成,本发明实施例不作限制。
[0155]综上所述,实施本发明实施例,在清理预设内存的过程中,通过分析出运行在所述预设内存中的第一类程序和第二类程序,并将第一类程序引用的活动对象移动至目标区域,之后释放所述第一类程序引用的活动对象在移动之前所占用的内存,可实现在对预设内存进行碎片整理时,降低对运行在所述预设内存中的用户交互程度高的程序的影响,提尚了用户体验。
[0156]本发明所有实施例中的模块或子模块,可以通过通用集成电路,例如CPU (CentralProcessing Unit,中央处理器),或通过 ASIC (Applicat1n Specific IntegratedCircuit,专用集成电路)来实现。
[0157]本发明实施例的方法的步骤顺序可以根据实际需要进行调整、合并或删减。本发明实施例的终端的模块可以根据实际需要进行整合、进一步划分或删减。
[0158]本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory, ROM)或随机存储记忆体(Random AccessMemory, RAM)等。
[0159]以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。
【主权项】
1.一种内存管理方法,其特征在于,包括: 接收清理指令,所述清理指令用于触发清理预设内存; 响应所述清理指令,在所述预设内存中,分析出第一类程序引用的活动对象和第二类程序引用的活动对象;所述第一类程序的用户交互度低于或等于预设交互度阈值;所述第二类程序的用户交互度高于所述预设交互度阈值; 从所述预设内存中选取出目标区域; 将所述第一类程序引用的活动对象移动至所述目标区域,并将所述第一类程序引用的活动对象在移动之前所占内存释放。
2.如权利要求1所述的方法,其特征在于,所述目标区域的容量大于或等于所述预设内存中的全部活动对象所占内存;所述从所述预设内存中选取出目标区域,包括: 遍历所述预设内存中的大小等于所述目标区域的容量的内存片段; 各自计算出所述内存片段中包含的所述第二类程序引用的活动对象的个数; 将包含有第二类程序引用的活动对象的个数最多的内存片段选定为所述目标区域。
3.如权利要求1所述的方法,其特征在于,所述目标区域的容量大于或等于所述预设内存中的全部活动对象所占内存;所述从所述预设内存中选取出目标区域,包括: 遍历所述预设内存中的大小等于所述目标区域的容量的内存片段; 各自计算出所述内存片段外的活动对象移动至所述内存片段的移动时间总量; 将对应的移动时间总量最小的所述内存片段选定为所述目标区域。
4.如权利要求1所述的方法,其特征在于,所述目标区域的容量大于或等于所述预设内存中的全部活动对象所占内存;所述从所述预设内存中选取出目标区域,包括: 遍历所述预设内存中的大小等于所述目标区域的容量的内存片段; 从所述大小等于所述目标区域的容量的内存片段中,选取出大小等于所述目标区域的容量的空白内存片段; 各自计算出所述空白内存片段外的活动对象移动至所述空白内存片段的移动时间总量; 将对应的移动时间总量最小的所述空白内存片段选定为所述目标区域。
5.如权利要求1所述的方法,其特征在于,所述目标区域的容量大于或等于所述预设内存中的全部活动对象所占内存;所述从所述预设内存中选取出目标区域,包括: 遍历所述预设内存中的大小等于所述目标区域的容量的内存片段; 从所述大小等于所述目标区域的容量的内存片段中,选取出大小等于所述目标区域的容量且不包含所述第二类程序引用的活动对象的内存片段; 各自计算出所述不包含所述第二类程序引用的活动对象的内存片段外的活动对象移动至所述不包含所述第二类程序引用的活动对象的内存片段的移动时间总量; 将对应移动时间总量最小的所述不包含所述第二类程序引用的活动对象的内存片段选定为所述目标区域。
6.如权利要求1所述的方法,其特征在于,在所述将所述第一类程序引用的活动对象移动至所述目标区域之前,还包括: 判断所述目标区域中是否包含所述第一类程序引用的活动对象,若是,则将所述目标区域中的所述第一类程序引用的活动对象移动至所述目标区域的一端。
7.如权利要求1所述的方法,其特征在于,所述第一类程序包括:当前没有占用输入输出端口的程序;或者,运行在后台的程序。
8.如权利要求1所述的方法,其特征在于,在所述接收清理指令之后,还包括:释放所述预设内存中的垃圾对象所占内存。
9.如权利要求1所述的方法,其特征在于,在所述将所述第一类程序引用的活动对象移动至所述目标区域之后,还包括:监测运行在所述目标区域内的所述第二类程序是否变成所述第一类程序,若是,则将转变成所述第一类程序的所述第二类程序所引用的活动对象移动至所述目标区域的一端。
10.如权利要求1-9中任一项所述的方法,其特征在于,在所述将所述第一类程序引用的活动对象移动至所述目标区域之后,还包括: 监测运行在所述目标区域外的所述第二类程序是否变成所述第一类程序,若是,则将转变成所述第一类程序的所述第二类程序所引用的活动对象移动至所述目标区域。
【专利摘要】本发明实施例公开了一种内存管理方法,包括:接收清理指令,所述清理指令用于触发清理预设内存;响应所述清理指令,在所述预设内存中,分析出第一类程序引用的活动对象和第二类程序引用的活动对象;所述第一类程序的用户交互度低于或等于预设交互度阈值;所述第二类程序的用户交互度高于所述预设交互度阈值;从所述预设内存中选取出目标区域;将所述第一类程序引用的活动对象移动至所述目标区域,并将所述第一类程序引用的活动对象在移动之前所占内存释放。采用本发明,可实现在清理预设内存的过程中,减小对正在运行在所述预设内存中的用户交互程度高的程序的影响。
【IPC分类】G06F17-30
【公开号】CN104866548
【申请号】CN201510233216
【发明人】刘立荣
【申请人】深圳市金立通信设备有限公司
【公开日】2015年8月26日
【申请日】2015年5月8日
当前第5页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1