本技术涉及计算机,特别是涉及一种热更新方法和相关装置。
背景技术:
1、热更新(hot update)是指在不停止应用程序或服务的情况下,通过更新程序的某些部分来修复或添加新功能的过程。热更新可以在不需要重新启动应用程序的情况下,实时更新应用程序的代码、配置文件、资源文件等文件。
2、相关技术中,为了提高加载速度,会预先将与应用程序有关的文件从硬盘读取到缓存中,在获取请求后,基于该请求从缓存中加载对应的文件。当需要针对该应用程序进行热更新时,需要先清除缓存中第i个版本的文件,再将第i+1个版本的文件从硬盘中读取到缓存中,以便从缓存中加载第i+1个版本的文件。
3、但是,在清除第i个版本的文件的过程中,可能无法被完全清除从而出现内存泄漏的问题。随着该应用程序的不断运行,每一次请求后就会有一定的内存泄漏,造成系统内存的浪费,导致应用程序运行速度减慢甚至系统崩溃等严重后果。
技术实现思路
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、所述装置还包括分发单元,用于:
29、将多个所述第三请求均匀分发给多个所述第一子进程进行处理。
30、可选的,若所述第一子进程的数量为n,n为大于1的整数,所述删除创建单元,具体用于:
31、删除n-1个所述第一子进程;
32、所述装置还包括分发单元,用于:
33、若在所述第二子进程创建完成之前,获取来自所述目标应用程序的第一请求,将所述第一请求分发给未删除的第一子进程进行处理。
34、可选的,所述获取单元,还用于:
35、获取来自所述目标应用程序的第一请求;
36、基于所第一述请求,获取所述目标应用程序的最新版本信息。
37、可选的,所述获取单元,具体用于:
38、每隔预设时间获取所述目标应用程序的最新版本信息。
39、另一方面,本技术实施例提供一种计算机设备,所述计算机设备包括处理器以及存储器:
40、所述存储器用于存储计算机程序,并将所述计算机程序传输给所述处理器;
41、所述处理器用于根据所述计算机程序中的指令执行上述方面所述的方法。
42、另一方面,本技术实施例提供了一种计算机可读存储介质,所述计算机可读存储介质用于存储计算机程序,所述计算机程序用于执行上述方面所述的方法。
43、另一方面,本技术实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述方面所述的方法。
44、由上述技术方案可以看出,获取目标应用程序的最新版本信息和目标应用程序的当前版本信息,以及应用程序和子进程的对应关系。在该对应关系中,不同的应用程序对应不同的子进程,以通过不同子进程满足不同应用程序具有不同的业务逻辑,从而基于该对应关系将来自各个应用程序的请求分发给不同的子进程进行处理。基于该对应关系,确定与目标应用程序对应的第一子进程,该第一子进程是基于当前版本信息创建的子进程。在目标应用程序运行的过程中进行热更新,即若当前版本信息与最新版本信息不一致,说明目标应用程序应该进行更新,则不再将来自目标应用程序的请求分发给第一子进程,而是删除第一子进程,基于最新版本信息创建第二子进程,并在对应关系中,将与目标应用程序对应的子进程更新为第二子进程,以便将来自目标应用程序的请求基于更新后的对应关系分发给第二子进程。由此,在目标应用程序运行的过程中,若发现目标应用程序出现更新,则可以基于最新版本信息创建新的第二子进程,从而实现热更新。而且由于进程之间均是相互独立的,故删除旧的第一子进程后,第一子进程中所有已分配的内存均会被删除,所有第一子进程内的引用关系均会被删除,从而避免出现内存泄漏,提高了系统性能。
1.一种热更新方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,在所述第二子进程创建完成之前,所述方法还包括:
3.根据权利要求2所述的方法,其特征在于,若将多个所述第一请求分发给所述第三子进程进行处理,所述方法还包括:
4.根据权利要求1所述的方法,其特征在于,在所述第二子进程创建完成之后,所述方法还包括:
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
6.根据权利要求1所述的方法,其特征在于,在获取来自所述目标应用程序的第三请求之后,所述方法还包括:
7.根据权利要求6所述的方法,其特征在于,若获取来自所述目标应用程序的多个所述第三请求之后,所述基于所述最新版本信息创建所述第一子进程,包括:
8.根据权利要求7所述的方法,其特征在于,若所述第一子进程的数量为n,n为大于1的整数,则所述删除所述第一子进程,包括:
9.根据权利要求1所述的方法,其特征在于,所述方法还包括:
10.根据权利要求1所述的方法,其特征在于,获取所述目标应用程序的最新版本信息,包括:
11.一种热更新装置,其特征在于,所述装置包括:获取单元、确定单元、删除创建单元和更新单元;
12.根据权利要求11所述的装置,其特征在于,所述确定单元,还用于:
13.一种计算机设备,其特征在于,所述计算机设备包括处理器以及存储器:
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质用于存储计算机程序,所述计算机程序用于执行权利要求1-10中任意一项所述的方法。
15.一种包括计算机程序的计算机程序产品,其特征在于,当其在计算机设备上运行时,使得所述计算机设备执行权利要求1-10中任意一项所述的方法。
