本技术属于终端,尤其涉及一种内存管理方法、终端设备及计算机可读存储介质。
背景技术:
1、目前,终端设备可支持多个用户登录,例如可支持用户a、用户b和用户c登录。在多用户登录终端设备时,同一时刻一般只有一个活跃用户(比如用户a),其他用户都是非活跃用户(比如用户b和用户c)。当活跃用户从用户a切换为用户b时,用户a的所有应用都会成为用户b的后台应用,此时,用户a中占用内存的应用仍会占用终端设备的内存,导致用户b的可用内存较少。当用户b的可用内存不足时,终端设备可以通过匿名页的换出以释放内存,从而增加用户b的可用内存,即可以将内存中的匿名页存储至硬盘的交换分区中,以释放匿名页所占用的内存,但换出的匿名页一般是随机零散地存储在交换分区中,即不同用户的匿名页可能存储于相同的数据块中,导致后续某用户需要进行匿名页的换入(例如加载匿名页至内存)时,会换入其他用户的匿名页,即会换入额外的无用数据,降低了数据的换入效率,造成用户体验较差。
技术实现思路
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、可选的,当活跃用户所需的交换分区的大小大于或等于预设的总交换分区的大小时,终端设备可以将预设的总交换分区的大小的m倍确定为第一用户对应的交换分区的大小,以尽可能为活跃用户分配较大的交换分区,提升活跃用户的使用体验。其中,m小于1,m的取值可以根据实际场景具体确定。
29、在另一种可能的实现方式中,终端设备可以根据各用户所需的交换分区的大小,确定当前所需的总交换分区的大小,并可以根据当前所需的总交换分区的大小和预设的总交换分区的大小,确定各用户对应的交换分区的大小。
30、示例性的,在当前所需的总交换分区的大小小于或等于预设的总交换分区的大小时,即表明预设的总交换分区可以满足各用户对应的所有匿名页的换出需求,此时,终端设备可以分别将各用户所需的交换分区的大小确定为各用户对应的交换分区的大小。或者,终端设备可以分别将各非活跃用户所需的交换分区的大小确定为各非活跃用户对应的交换分区的大小,并将剩余交换分区的大小确定为活跃用户对应的交换分区的大小,以为活跃用户分配较大的交换分区,方便将活跃用户后续使用过程中的匿名页保存至交换分区,保活活跃用户后续使用过的应用,提高活跃用户的使用体验。
31、示例性的,在当前所需的总交换分区的大小大于预设的总交换分区的大小时,终端设备可以确定预设的总交换分区的大小和当前所需的总交换分区的大小之间的比值,并根据该比值和各用户所需的交换分区的大小,确定各用户对应的交换分区的大小。
32、在一个示例中,对于各所述用户中的每一个用户,当所述用户对应的交换分区的大小小于所述用户对应的各匿名页的总大小时,所述目标匿名页为第一目标应用的匿名页,所述第一目标应用为所述用户对应的各应用中的一个或多个。
33、在该实现方式提供的内存管理方法中,在确定各用户对应的交换分区的大小之后,对于每一个用户,当该用户对应的交换分区的大小小于该用户所需的交换分区的大小时,表明无法将该用户对应的所有匿名页均存储至该用户对应的交换分区。此时,终端设备可以仅将该用户对应的第一目标应用(即该用于对应的各应用中的部分应用)的匿名页存储至该用户对应的交换分区。
34、可选的,所述第一目标应用是根据所述用户对应的各应用的应用优先级确定的。
35、在该实现方式提供的内存管理方法中,终端设备可以获取该用户对应的各应用的应用优先级,并可以根据应用优先级确定该用户对应的第一目标应用。其中,应用优先级越高的应用,被确定为第一目标应用的概率越大;应用优先级越低的应用,被确定为第一目标应用的概率越小。也就是说,当某用户对应的交换分区无法存储该用户对应的所有匿名页时,终端设备可以根据应用优先级确定该用户最可能再次使用的第一目标应用,并可以将第一目标应用的匿名页存储至交换分区中,以保活该用户对应的第一目标应用,从而可以提高该用户再次使用第一目标应用时的启动速度,提升用户体验。
36、可选的,终端设备可以根据默认设置确定各用户对应的各应用的应用优先级。例如,技术人员可以根据各应用的在其他终端设备中的使用情况,确定各应用的应用优先级,并可以在终端设备中设置各应用的应用优先级。终端设备可以将技术人员设置的应用优先级确定为默认设置。
37、可选的,终端设备可以根据终端设备中各应用的使用情况,确定各用户对应的各应用的应用优先级。例如,终端设备可以根据各应用的使用时长或者使用频次,确定各应用的应用优先级。其中,使用时长越多或者使用频次越高的应用,所对应的应用优先级越高;使用时长越少或者使用频次越低的应用,所对应的应用优先级越低。
38、在另一个示例中,所述方法还可以包括:
39、对于各所述用户中的每一个用户,当所述用户对应的交换分区的大小小于所述用户前一次对应的交换分区的大小时,所述终端设备确定所述用户对应的第二目标应用,并终止所述第二目标应用,所述用户前一次对应的交换分区为前一次的预设触发事件中,所述终端设备为所述用户分配的交换分区。
40、在该实现方式提供的内存管理方法中,在确定各用户对应的交换分区的大小之后,对于每一个用户,当该用户对应的交换分区的大小小于该用户前一次对应的交换分区的大小,且该用户对应的交换分区的大小小于该用户所需的交换分区的大小时,终端设备可以确定该用户对应的第二目标应用,并终止或者关闭第二目标应用,以释放该用户对应的部分交换分区。其中,用户前一次对应的交换分区可以为前一次的预设触发事件中,终端设备为该用户分配的交换分区。
41、可选的,所述用户对应的第二目标应用是根据所述用户对应的各应用的应用优先级确定的。
42、在该实现方式提供的内存管理方法中,终端设备可以获取该用户对应的各应用的应用优先级,并可以根据应用优先级确定该用户对应的第二目标应用。其中,应用优先级越低的应用,被确定为第二目标应用的概率越大;应用优先级越高的应用,被确定为第二目标应用的概率越小。即当某用户对应的交换分区变小,且变小后的交换分区的大小小于该用户所需的交换分区的大小时,终端设备可以根据应用优先级确定该用户再次使用概率较低的第二目标应用,并终止第二目标应用,即释放该用户对应的交换分区中第二目标应用的匿名页,以尽量保留该用户最可能再次使用的应用,提升用户体验。
43、第二方面,本技术实施例提供了一种内存管理装置,应用于终端设备,所述终端设备支持多用户登录,所述装置可以包括:
44、触发事件检测模块,用于检测到预设触发事件;
45、匿名页存储模块,用于响应于所述预设触发事件,将各用户对应的目标匿名页存储至为各所述用户分配的交换分区,各所述用户为已登录所述终端设备的用户。
46、示例性的,所述预设触发事件为用户登录事件、用户注销事件或用户切换事件。
47、示例性的,所述装置还可以包括:
48、总交换分区大小获取模块,用于获取预设的总交换分区的大小;
49、交换分区大小确定模块,用于根据所述预设的总交换分区的大小,确定各所述用户对应的交换分区的大小,并根据各所述用户对应的交换分区的大小,确定各所述用户对应的交换分区。
50、在第二方面的一种可能的实现方式中,所述交换分区大小确定模块,用于根据所述预设的总交换分区的大小和各所述用户对应的用户优先级,确定各所述用户对应的交换分区的大小,各所述用户对应的用户优先级是根据各所述用户登录所述终端设备的时间确定的,或者是根据各所述用户最后一次的活跃时间确定的;或者,根据所述预设的总交换分区的大小和各所述用户所需的交换分区的大小,确定各所述用户对应的交换分区的大小,各所述用户所需的交换分区的大小是根据各所述用户对应的各匿名页的大小确定的。
51、在第二方面的另一种可能的实现方式中,所述交换分区大小确定模块,还用于确定各所述用户中的第一用户,所述第一用户为所述终端设备活跃的用户。
52、所述交换分区大小确定模块,还用于根据所述预设的总交换分区的大小和所述第一用户对应的各匿名页的大小,确定所述第一用户对应的交换分区的大小;根据所述预设的总交换分区的大小、所述第一用户对应的交换分区的大小和各第二用户对应的用户优先级,确定各所述第二用户对应的交换分区的大小,所述第二用户为各所述用户中除所述第一用户以外的用户;
53、或者,所述交换分区大小确定模块,还用于根据所述预设的总交换分区的大小、所述第一用户对应的交换分区的大小和各所述第二用户所需的交换分区的大小,确定各所述第二用户对应的交换分区的大小,各所述第二用户所需的交换分区的大小是根据各所述第二用户对应的各匿名页的大小确定的。
54、在一个示例中,对于各所述用户中的每一个用户,当所述用户对应的交换分区的大小小于所述用户对应的各匿名页的总大小时,所述目标匿名页为第一目标应用的匿名页,所述第一目标应用为所述用户对应的各应用中的一个或多个。
55、可选的,所述第一目标应用是根据所述用户对应的各应用的应用优先级确定的。
56、在另一个示例中,所述装置还可以包括:
57、目标应用终止模块,用于对于各所述用户中的每一个用户,当所述用户对应的交换分区的大小小于所述用户前一次对应的交换分区的大小时,确定所述用户对应的第二目标应用,并终止所述第二目标应用,所述用户前一次对应的交换分区为前一次的预设触发事件中,所述终端设备为所述用户分配的交换分区。
58、可选的,所述用户对应的第二目标应用是根据所述用户对应的各应用的应用优先级确定的。
59、第三方面,本技术实施例提供了一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,使所述终端设备实现上述第一方面中任一项所述的内存管理方法。
60、第四方面,本技术实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被计算机执行时,使所述计算机实现上述第一方面中任一项所述的内存管理方法。
61、第五方面,本技术实施例提供了一种计算机程序产品,当计算机程序产品在终端设备上运行时,使得终端设备执行上述第一方面中任一项所述的内存管理方法。
62、可以理解的是,上述第二方面至第五方面的有益效果可以参见上述第一方面中的相关描述,在此不再赘述。
1.一种内存管理方法,应用于终端设备,其特征在于,所述终端设备支持多用户登录,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述预设触发事件为用户登录事件、用户注销事件或用户切换事件。
3.根据权利要求1或2所述的方法,其特征在于,在所述终端设备将各用户对应的目标匿名页存储至为各所述用户分配的交换分区之前,所述方法还包括:
4.根据权利要求3所述的方法,其特征在于,所述终端设备根据所述预设的总交换分区的大小,确定各所述用户对应的交换分区的大小,包括:
5.根据权利要求3所述的方法,其特征在于,所述终端设备根据所述预设的总交换分区的大小,确定各所述用户对应的交换分区的大小,包括:
6.根据权利要求1至5中任一项所述的方法,其特征在于,对于各所述用户中的每一个用户,当所述用户对应的交换分区的大小小于所述用户对应的各匿名页的总大小时,所述目标匿名页为第一目标应用的匿名页,所述第一目标应用为所述用户对应的各应用中的一个或多个。
7.根据权利要求6所述的方法,其特征在于,所述第一目标应用是根据所述用户对应的各应用的应用优先级确定的。
8.根据权利要求1至7中任一项所述的方法,其特征在于,所述方法还包括:
9.根据权利要求8所述的方法,其特征在于,所述用户对应的第二目标应用是根据所述用户对应的各应用的应用优先级确定的。
10.一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时,使所述终端设备实现如权利要求1至9中任一项所述的内存管理方法。
11.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被计算机执行时,使所述计算机实现如权利要求1至9中任一项所述的内存管理方法。
