通过自适应配置的快速移动应用程序切换方法及存储介质与流程

文档序号:34120447发布日期:2023-05-11 03:52阅读:34来源:国知局
通过自适应配置的快速移动应用程序切换方法及存储介质与流程

本发明涉及移动应用程序,具体涉及一种通过自适应配置的快速移动应用程序切换方法。


背景技术:

1、随着移动计算的广泛功能和灵活性,移动应用程序不断推出丰富的功能,以满足用户多样化的需求。这需要代码和数据占用的持续增加。这一趋势导致了移动设备对更大内存容量的持续需求,以解决内存压力问题。然而,设备的成本和功率/面积预算通常限制了它的大小。

2、现代移动操作系统通过基于压缩的交换支持虚拟内存。虚拟内存专业版虚拟物理内存空间大于实际内存容量,使多个应用程序即使在高内存压力下也能并发运行。无论如何,这些好处伴随着额外的开销,降低了性能。缓慢的i/o访问增加了从存储器获取非驻留文件支持页面的延迟。要在压缩交换空间中获取匿名页面,首先需要在页面故障时由cpu解压这些页面。分配空闲页面也会消耗系统资源。通过需求分页按需获取页面可能无法有效利用可用资源,如cpu周期和i/o带宽。

3、经验分析表明,当系统经历内存压力时(可能在运行许多后台应用程序时),应用程序切换时间可以增加4倍(以数百毫秒为数量级)。这种放缓主要是由于在应用程序切换期间,对文件支持的页面和匿名页面的需求分页带来了较长的阻塞时间,而不是释放已分配的页面。

4、最近的一项研究表明,现在的智能手机用户经常运行超过10个应用程序,因此系统很可能经常在内存压力下运行,除非手机有很大的主内存容量。众所周知,用户每天在应用程序之间切换超过100次。经推测,这种频繁、长延迟的事件可能会对智能手机用户体验产生负面影响。

5、在现实中,可观察到了以下数据和现象:

6、当系统内存压力较大时,应用程序切换时,用于获取非常驻页面的硬件资源未被充分利用。对于8个流行的android应用程序,在切换过程中cpu利用率为34.2%。此外,平均只使用最大磁盘带宽的19.4%。

7、文件支持页面和匿名页面在它们的交换机占用中有不同的特征,交换机占用是在应用程序切换期间被处理的一组页面。具体来说,文件支持页面的交换机占用要恒定得多——大约75%的访问文件支持页面是跨交换机不变的,而只有44%的匿名页面是不变的。这促使使用不同的预测策略来提前预测。

8、利用这些经验观察来开发一种有效的预准备方法。第一个观察结果表明,在应用程序切换开始时,利用可用资源对可能访问的页面进行预分页是有希望的。预准备有助于最大化有效的cpu和磁盘带宽利用率,这可以转化为性能收益(即减少开关时间)。第二个观察结果表明,需要在运行时调整要获取的目标页面,以捕获应用程序动态变化的页面访问模式。这能够提高对开关占地面积的预测精度。


技术实现思路

1、本发明提出的一种通过自适应配置的快速移动应用程序切换方法的目标是通过最小化与需求分页相关的减速来减少应用程序切换的延迟。

2、为实现上述目的,本发明采用了以下技术方案:

3、一种通过自适应配置的快速移动应用程序切换方法,包括以下步骤,

4、第一步、对于文件支持页面的估计;对文件支持页面的sfe执行脱机分析,以确定可能的预压缩目标集,然后利用最小的运行时信息来维护简洁的预压缩目标集;

5、第二步、对于匿名页面的估计;在应用程序运行时,插入出错的页面至容错缓存中,再将容错缓存的页面插入离线候选表中,然后交换缓存,将出错的页面导入内存;

6、第三步、对匿名页面进行预分页;在每个cpu核心上固定一个线程,并为它们分配最低优先级,每个线程从预分页目标表中检索一个批处理,然后对批处理中的页面执行预分页操作;

7、第四步、对文件支持页面进行预分页;预处理管理器维护另一组线程,每个线程从预准备目标表中分配一个文件,然后预取该文件的页面,每个线程为预准备目标表中的相应区段发出异步页缓存读操作。

8、进一步地,所述第一步、对于文件支持页面的估计,具体包括:

9、步骤一:离线分析;

10、测量每个应用程序在10次切换中被访问的文件页,超过8次访问的页面被认为是频繁访问的由此产生的页面集被存储为一个离线候选表;

11、存储方式:键值对映射,键是文件名,值是一个(offset,len)对的列表,每个对表示[offset,offset+len]页,称作范围;

12、步骤二:缺页记录;

13、每次切换流程中,sfe都会将所有的缺页记录到一个缓冲区中,这个缓冲区将在切换结束后用于更新预分页的目标;

14、步骤三:目标管理-插入;

15、预分页的目标管理在应用切换完成后启动,预分页目标表中存储即将会被预分页线程取走的范围,首先检查缺页缓冲区,取得其中的范围,并检查其是否在离线候选表中,如果是,则加入目标表;

16、步骤四:目标管理-合并;

17、如果同一文件的两个范围彼此相近,则将其合并,避免产生过多i/o请求;

18、步骤五:目标管理-驱逐;

19、如果预期的切换结束后,目标表中有页面没有被线程取走,则将其删除;如果是范围的一部分,则拆分为两个更小的范围。

20、进一步地,所述第二步、对于匿名页面的估计,具体包括:

21、步骤一:目标管理-插入;

22、应用切换完成后,检查缺页缓冲区的页是否在目标表或在线候选表中,如果都不在,则将其插入在线候选表;

23、步骤二:目标管理-升级;

24、检查在线候选表中的页,如果在切换中被访问了,则升级到预分页目标表中,等待线程的预取;

25、步骤三:目标管理-驱逐;

26、两表中的每个页都有自己的超时计数器,如果ttl降为0,则将其从对应的表中清除。

27、进一步地,所述第三步、对匿名页面进行预分页,具体包括:

28、预准备工作的分配以工作共享的方式完成;每个线程从预分页目标表中检索一个批处理,然后对批处理中的页面执行预分页操作;具体来说,对于批处理中的每个虚拟页,每个线程检查虚拟页是否存在于进程的地址空间中;如果不存在,则向交换子系统发出虚拟页的交换入操作;交换入操作最终成为内存中压缩交换设备中的解压缩操作,在目标页面解压缩后,线程最终使相应的pte指向交换入的页面。

29、进一步地,所述第四步、对文件支持页面进行预分页;具体包括,

30、预处理管理器维护另一组线程,用于预处理文件支持的页面,对文件支持的页面采用不同的预压缩策略,首先,文件是预分配工作的单元,每个线程从预老化目标表中分配一个文件,然后预取该文件的页面,对于预准备操作,每个线程为预准备目标表中的相应区段发出异步页缓存读操作;

31、其次,至少指定一个线程持续执行大型文件支持页面的预压缩,最后,在文件支持页面的预取过程中,应该仔细处理文件元数据,除非文件元数据在内存中,否则元数据检索会引起额外的延迟,这反过来会降低预取的有效性。

32、另一方面,本发明还公开一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行如上述方法的步骤。

33、由上述技术方案可知,本发明的通过自适应配置的快速移动应用程序切换方法具有以下有益效果:

34、本发明通过结合i)针对文件支持和匿名页面的高精度交换机占用估计器和ii)有效实现预准备机制来执行预准备,以最小化应用程序切换期间cpu周期和磁盘带宽的资源浪费。本发明对谷歌pixel 4和pixel 3a上的8个实际应用程序的评估表明,与普通android10相比,本发明系统可以分别平均减少22.2%和28.3%的切换时间(最大值分别为33.3%和35.7%)。

35、在应用程序切换时,本发明的系统唤醒多个准备分页线程,以开始获取文件备份页和匿名页。这些线程与应用程序线程并行运行,以便与应用程序计算重叠。为了准确预测交换机占用页面,本发明系统采用了一种自适应预测机制。具体来说,单个预测器维护两个表:一个候选表和一个目标表。预测器根据两个表之间的访问模式的运行时信息提升或降低页。预处理线程只对目标表中的页发出获取请求,而在候选表中维护被访问机会较小的页。

36、总的来说,本发明对应用程序切换的性能瓶颈进行了经验分析,以确定预先准备作为问题解决方案的机会。本发明提出了一种自适应预处理技术以减少切换时间,这是移动设备上用户交互的关键。本发明的系统与应用程序无关,不需要对应用程序代码进行任何更改。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1