本申请实施例提供了一种内存管理的方法及电子设备,属于存储技术领域。该方法包括:启动应用程序,并向所述应用程序提供虚拟内存;检测所述应用程序在运行过程中占用的所述虚拟内存的空间;当所述占用的所述虚拟内存的空间大于第一阈值时,检测所述应用程序运行的进程的位数;根据所述应用程序运行的进程的位数,对所述应用程序执行杀进程的操作。上述方法通过根据运行中的应用程序发生的内存异常时对虚拟内存的占用情况结合多维度信息,按照预设策略对特定应用程序进行查杀,从而解决内存泄露的问题。存泄露的问题。存泄露的问题。
【技术实现步骤摘要】
内存管理的方法及电子设备
[0001]本申请是分案申请,原申请的申请号是202110669220.3,原申请的申请日是2021年6月16日,原申请的全部内容通过引用结合在本申请中。
[0002]本申请涉及存储
,尤其涉及一种内存管理的方法及电子设备。
技术介绍
[0003]内存泄露(memory leak)是指由于应用程序(application,APP)运行逻辑发生错误导致不再使用的内存没有被释放,或者由于应用程序处理性能较差导致内存没有及时被释放,进而导致占用内存不断积压的现象。目前,内存泄露问题仍是软件领域的痛点问题。资源、对象、图片、线程、文件、显示等不当使用,都可能导致内存泄露。
[0004]应用程序在运行过程中如果发生内存泄漏,已被申请的内存会一直处于被占用状态,无法被释放再利用,由于系统的内存资源是有限的,此后应用程序每一次动态申请内存,都会使系统的内存资源越来越少,最终影响业务的正常运行。
[0005]因此,如何缓解内存泄露的问题,优化电子设备的内存性能,提高用户的使用体验,成为当下重要的研究课题。
技术实现思路
[0006]本申请提供了一种内存管理的方法及电子设备,通过根据运行中的应用程序发生的内存异常时对虚拟内存的占用情况结合多维度信息,按照预设策略对特定应用程序进行查杀,从而解决内存泄露的问题。
[0007]第一方面,提供了一种内存管理的方法,应用于电子设备,包括:启动应用程序,并向所述应用程序提供虚拟内存;检测所述应用程序在运行过程中占用的所述虚拟内存的空间;当所述占用的所述虚拟内存的空间大于第一阈值时,检测所述应用程序运行的进程的位数;根据所述应用程序运行的进程的位数,对所述应用程序执行杀进程的操作。
[0008]其中,目标进程的位数可以用于指示应用程序运行的为多少位的进程,如32位进程或64位进程等。对应用程序执行杀进程的操作在下文也可以被描述为对应用程序进行查杀。
[0009]在一种实现方式中,由于不同位数的应用程序能支持的最大的虚拟内存不同,比如32位应用程序能支持的最大的虚拟内存为4G,因此,第一阈值可以根据应用程序运行的进程的位数确定,例如,对于运行32位进程的应用程序,第一阈值可以设置为3.2G或3.5G等。换言之,第一阈值与应用程序运行的进程的位数之间可以具有对应关系。
[0010]根据本实现方式提供的方法,可以设置应用程序对应的可占用虚拟内存空间的阈值,在应用程序运行过程中,如果检测到应用程序占用的虚拟内存空间大于该阈值时,可进一步判断该进程的位数,结合进程的位数信息确定该应用程序是否导致内存泄露,若是,则对该应用程序进行查杀,从而准确地对内存占用异常的应用程序进行处理,有效管理内存
资源。
[0011]结合第一方面,在第一方面的某些实现方式中,所述根据所述应用程序运行的进程的位数,对所述应用程序执行杀进程的操作,具体包括:当根据所述应用程序运行的进程的位数确定所述应用程序运行的进程为目标进程时,对所述应用程序执行杀进程的操作。
[0012]应理解,这里的目标进程可以包括与第一阈值对应的进程,例如在第一阈值是根据32位应用程序支持的最大的虚拟内存设置的情况下,则目标进程可以是32位进程;或者,目标进程也可以指与第一阈值不具有对应关系,但满足其他应用程序查杀条件的进程,例如占用的虚拟内存达到预设阈值的进程等。
[0013]根据本实现方式提供的方法,通过根据应用程序运行的进程位数确定应用程序运行的为目标进程时,对该应用程序进行查杀,能够准确地对内存占用异常的应用程序进行处理,有效管理内存资源,避免直接查杀应用程序干扰用户使用应用程,导致用户体验较差的问题。
[0014]结合第一方面,在第一方面的某些实现方式中,所述当根据所述应用程序运行的进程的位数确定所述应用程序运行的进程为目标进程时,对所述应用程序执行杀进程的操作,具体包括:当根据所述应用程序运行的进程位数确定所述应用程序运行的为32位进程时,对所述应用程序执行杀进程的操作。
[0015]结合第一方面,在第一方面的某些实现方式中,当所述应用程序处于后台运行状态时,所述方法还包括:当根据所述应用程序运行的进程位数确定所述应用程序运行的为32位进程时,检测所述应用程序处于所述后台运行状态的时长;当所述应用程序处于所述后台运行状态的时长大于预设时长时,对所述应用程序执行杀进程的操作。
[0016]应理解,在一些情形下,如果应用程序切换至后台运行状态的时间较短,可能意味着用户暂时性地不使用该应用程序,因此,为了避免直接查杀用户暂时性切换至后台,但后续仍需继续使用的应用程序,在本实现方式中进一步判断应用程序处于后台运行状态的时长,当该时长大于预设时长时,才对该应用程序进行查杀。
[0017]根据本实现方式提供的方法,当应用程序运行的进程满足目标进程时,可以进一步判断应用程序处于后台运行状态的时长,当其处于后台运行状态的时长大于预设时长时,才对应用程序执行杀进程的操作。通过进一步结合应用程序处于后台状态的时长,判断是否对应用程序进行查杀,可以避免对某一应用程序查杀后,干扰用户对应用程序的使用,从而使用户使用体验下降的问题。
[0018]结合第一方面,在第一方面的某些实现方式中,所述当所述应用程序处于所述后台运行状态的时长大于预设时长时,对所述应用程序执行杀进程的操作,还包括:当所述应用程序处于所述后台运行状态的时长大于预设时长时,检测所述应用程序的类型;当所述应用程序的类型满足预设类型时,对所述应用程序执行杀进程的操作。
[0019]应理解,满足预设类型的应用程序是指发生内存泄露时,在满足目标位进程的情况下可以进行查杀的应用程序。示例性的,满足预设类型的应用程序可以对可以包括对用户使用体验影响较大或对用户较为重要的应用程序。
[0020]在一些实现方式中,用户可以根据需要自主设置某一应用程序为能够进行查杀的应用程序;或者,系统可以默认特定的应用程序作为预设类型的应用程序;或者,也可以通过向用户查询的方式确定应用程序是否为预设类型的应用程序等。
[0021]根据本实现方式提供的方法,对于处于后台运行状态中的应用程序,可以结合该应用程序运行的进程、处于后台运行状态的时长和应用程序的类型,判断是否对其进行查杀,换言之,可以在确定该应用程序为目标位进程(即32位进程)且处于后台运行时间大于预设时长后,再判断该应用程序对应的类型是否属于预设类型,如果是,表示该应用程序具有查杀的必要性,则对该应用程序进行杀进程的操作。通过检测运行32位进程的应用程序是否属于预设类型的应用程序,并对符合预设类型的应用程序进行杀进程操作,可以避免直接查杀对用户较为重要的应用程序,影响用户的体验。
[0022]结合第一方面,在第一方面的某些实现方式中,所述预设类型的应用程序包括以下至少一种:通讯类型的所述应用程序、工具类型的所述应用程序、购物类型的所述应用程序、新闻类型的所述应用程序、新闻类型的所述应用程序。
[00本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种内存管理的方法,其特征在于,应用于电子设备,包括:启动应用程序,并向所述应用程序提供虚拟内存;在前台运行所述应用程序;在满足至少以下条件时,对前台运行的所述应用程序执行杀进程的操作:所述应用程序占用的所述虚拟内存的空间大于第一阈值,所述应用程序运行的进程位数为32位。2.根据权利要求1所述的方法,其特征在于,所述条件还包括:所述电子设备中剩余的物理内存空间小于第二阈值,或所述电子设备中剩余的物理空间达到预设等级,或所述应用程序申请所述虚拟内容的速率大于第三阈值。3.根据权利要求2所述的方法,其特征在于,所述方法还包括:检测所述电子设备中剩余的物理内存空间;当所述剩余的物理内存空间小于第二阈值时,检测所述应用程序在运行过程中占用的所述虚拟内存的空间;或者,当所述电子设备中剩余的物理内存空间达到预设等级时,检测所述应用程序在运行过程中占用的所述虚拟内存的空间;或者,检测所述应用程序申请所述虚拟内存的速率;当所述应用程序申请所述虚拟内存的速率大于第三阈值时,检测所述应用程序在运行过程中占用的所述虚拟内存的空间。4.根据权利要求1所述的方法,其特征在于,所述方法还包括:将所述应用程序退至后台运行;如果根据所述应用程序运行的进程位数确定所述应用程序运行的为32位进程,检测所述应用程序处于后台运行状态的时长;当所述应用程序处于所述后台运行状态的时长大于预设时长时,对所述应用程序执行杀进程的操作。5.根据权利要求4所述的方法,其特征在于,所述当所述应用程序处于所述后台运行状态的时长大于预设时长时,对所述...
【专利技术属性】
技术研发人员:肖名鹏,李鹏,李璐,万笑凡,
申请(专利权)人:荣耀终端有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。