发明内容
为了提高RAM的利用率,本申请提供一种提升RAM读写性能的方法、电子设备及介质。
第一方面,本申请提供一种提升RAM读写性能的方法,采用如下的技术方案:
一种提升RAM读写性能的方法,包括:
获取系统文件;
判断RAM Tree中是否存在所述系统文件,所述RAM Tree为RAM用于储存系统文件的Tree形结构,所述RAM Tree包括逻辑页、物理页、系统文件与逻辑页的关系、系统文件与物理页的关系以及逻辑页与物理页的关系;
若所述RAM Tree中存在所述系统文件,则对所述RAM Tree中所述系统文件对应的逻辑页与物理页的关系进行修改;
若所述RAM Tree中不存在所述系统文件,则判断Flash中是否存在Flash Tree,所述Flash Tree为所述Flash用于储存系统文件的Tree形结构,所述Flash Tree包括逻辑页、物理页、系统文件与逻辑页的关系、系统文件与物理页的关系以及逻辑页与物理页的关系;
若所述Flash中存在所述Flash Tree,则确定所述系统文件与所述Flash Tree的关系;
判断所述RAM Tree的储存空间是否被占满;
若所述RAM Tree的储存空间未被占满,则基于所述系统文件与所述Flash Tree的关系将所述系统文件添加至所述RAM Tree;
若所述RAM Tree的储存空间被占满,则对所述RAM Tree进行更新。
通过采用上述技术方案,电子设备获取系统文件,判断RAM Tree中是否存在所述系统文件,若RAM Tree中存在系统文件,则对RAM Tree中系统文件对应的逻辑页与物理页的关系进行修改,若RAM Tree中不存在系统文件,则判断Flash中是否存在Flash Tree,若Flash中存在Flash Tree,则确定系统文件与Flash Tree的关系,在Flash Tree加载完成后判断RAM Tree的储存空间是否被占满,若RAM Tree的储存空间未被占满,则基于系统文件与Flash Tree的关系将系统文件通过第一预设方式加入RAM Tree中,加入RAM Tree中后下次遇到相同的系统文件,不需要再次操作加载Flash Tree。若RAM Tree的储存空间被占满,则对RAM Tree进行更新,从而充分提高了对RAM的利用率。
在另一种可能实现的方式中,所述对所述RAM Tree中所述系统文件对应的逻辑页与物理页的关系进行修改,包括:
将第一系统文件对应的物理页标记为无效,所述第一系统文件为所述RAM Tree中与获取到的系统文件相同的系统文件;
将所述第一系统文件对应的逻辑页指向新的物理页。
通过采用上述技术方案,电子设备获取到相同的系统文件后将在RAM Tree中的第一系统文件对应的物理页标记为无效,并且将第一系统文件对应的逻辑页指向新的物理页,不再需要将RAM Tree中所有的系统文件频繁地进行迁移,由于现有在RAM中储存系统文件的形式是以数组的形式,每次对系统文件进行储存时并非顺序的操作,如果需要随机插入新的系统文件时,就需要对数组中的系统文件进行迁移,本方案采用Tree形结构,对RAM的管理没有排序的需求,只需要通过修改系统文件对应的逻辑页与物理页的关系从而将系统文件添加至RAM Tree中,有效地减少了系统文件插入RAM Tree中的时间。
在另一种可能实现的方式中,所述确定所述系统文件与所述Flash Tree的关系,包括:
若加载所述Flash Tree后检测到所述系统文件,则确定所述Flash Tree中存在所述系统文件;
若加载所述Flash Tree后未检测到所述系统文件,则确定所述Flash Tree中不存在所述系统文件。
通过采用上述技术方案,若电子设备加载Flash Tree后检测到系统文件,则确定Flash Tree中存在系统文件,若电子设备加载Flash Tree后未检测到系统文件,则确定Flash Tree中不存在系统文件,通过加载Flash Tree来判断Flash Tree与系统文件的关系,从而便于后续对系统文件进行操作。
在另一种可能实现的方式中,所述基于所述系统文件与所述Flash Tree的关系将所述系统文件添加至所述RAM Tree,包括:
若所述Flash Tree中存在所述系统文件,则将所述系统文件通过第一预设方式加入所述RAM Tree,所述第一预设方式包括:
获取命中的系统文件以及所述命中的系统文件的分支系统文件,所述分支系统文件包括所述命中的系统文件的下一级系统文件;
若所述Flash Tree中不存在所述系统文件,则将所述系统文件添加至所述RAMTree中。
通过采用上述技术方案,若电子设备检测到在Flash Tree中存在系统文件,则将在Flash Tree中命中的系统文件以及分支系统文件均添加至RAN Tree中,若在Flash Tree中未检测到系统文件,则将系统文件直接添加至RAM Tree中,由于关于系统文件的操作原理是局部集中性的,在出现命中的系统文件后分支系统文件有可能会出现在接下来的操作中,将分支系统文件添加至RAM Tree中有效减少了加载Flash Tree的次数。
在另一种可能实现的方式中,所述对所述RAM Tree进行更新,包括:
获取第一系统文件集,所述第一系统文件集包括至少一个系统文件,所述至少一个系统文件是基于系统文件添加到所述RAM Tree中的先后顺序确定的;
基于所述第一系统文件集生成第一RAM Tree,所述第一RAM Tree为需要更新到所述Flash Tree中的RAM Tree;
判断第一数量信息是否不小于第二数量信息,所述第一数量信息为所述第一RAMTree中系统文件的数量信息,所述第二数量信息为所述Flash Tree的任一子Tree中系统文件的数量信息;
若所述第一数量信息小于所述第二数量信息,则循环执行获取所述第一系统文件集,将新的第一系统文件集添加至当前第一RAM Tree中形成新的第一RAM Tree的步骤,直至满足预设条件:
所述预设条件包括:
第三数量信息不小于所述第二数量信息,所述第三数量信息为所述新的第一RAMTree中系统文件的数量信息;
将所述新的第一系统文件集添加至当前第一RAM Tree中形成新的第一RAM Tree,包括以下中的至少一项,
若所述新的第一系统文件集中存在至少一个系统文件与所述当前第一RAM Tree中的系统文件相同,则将所述当前第一RAM Tree中相同的系统文件替换为所述新的第一系统文件集中相同的系统文件;
若所述新的第一系统文件集中不存在与所述当前第一RAM Tree中相同的系统文件,则将所述新的第一系统文件集中的系统文件添加至所述当前第一RAM Tree中;
若所述第一数量信息等于所述第二数量信息,则将所述新的第一RAM Tree与所述Flash Tree进行合并;
若所述第一数量信息大于所述第二数量信息,则将所述新的第一RAM Tree中满足第二数量信息个数的系统文件与所述Flash Tree进行合并。
通过采用上述技术方案,电子设备获取第一系统文件集,并且基于第一文件集生成第一RAM Tree,判断第一RAM Tree中的系统文件的数量信息与Flash Tree的子Tree中系统文件的数量信息是否相同,若小于Flash Tree的子Tree中系统文件的数量信息,则再次获取新的第一RAM Tree,若等于Flash Tree的子Tree中系统文件的数量信息,则将第一RAMTree与Flash Tree进行合并,若大于Flash Tree的子Tree中系统文件的数量信息,则将满足Flash Tree的子Tree中系统文件的数量信息个数的系统文件与所述Flash Tree进行合并,随着Flash Tree逐渐扩大子Tree的系统文件的数量也逐渐增大,有效减少了FlashTree合并的次数。在将新的第一系统文件集添加至当前第一RAM Tree中从而形成新的第一RAM Tree时,若存在相同的系统文件则将相对旧的系统文件替换为新的系统文件,从而便于对系统文件的管理信息进行更新,保证更新到Flash Tree中的系统文件均为最新的系统文件。
在另一种可能实现的方式中,所述获取第一系统文件集,包括:
第一循环步骤:从所述RAM Tree的起始位置获取所述至少一个系统文件以形成所述第一系统文件集,若当前次新的第一系统文件集与上次第一系统文件集满足第一预设条件时,循环执行获取至少一个系统文件的步骤以形成所述当前次新的第一系统文件集,直至所述当前次新的第一系统文件集满足第二预设条件;
若所述当前次新的第一系统文件集满足第二预设条件,则循环执行所述第一循环步骤;
所述第一预设条件包括:
所述新的第一系统文件集中的第一个系统文件与上次第一系统文件集中的末位系统文件添加至所述RAM Tree中的顺序相邻;
所述第二预设条件包括以下中的任意一项:
第二预设条件A,所述当前次新的第一系统文件集中末位的系统文件为所述RAMTree中末位系统文件;
第二预设条件B,所述当前次新的第一系统文件集获取到所述RAM Tree中末位系统文件后未占满所述当前次新的第一系统文件集;
若所述当前次新的第一系统文件集满足所述第二预设条件B,则所述当前次新的第一系统文件集中包括已获取到的所述RAM Tree中末位系统文件以及下次循环周期从所述RAM Tree起始位置获取的至少一个系统文件。
通过采用上述技术方案,电子设备从RAM Tree的起始位置获取至少一个系统文件以形成所述第一系统文件集,并且循环执行获取至少一个系统文件的步骤以形成所述当前次新的第一系统文件集,若当前次新的第一系统文件集获取到RAM Tree中末位系统文件后未占满所述当前次新的第一系统文件集,则从所述RAM Tree起始位置获取的至少一个系统文件,通过系统文件添加至RAM Tree中的先后顺序进行获取最大化利用了Ram Tree的储存空间,有效避免了获取新来的系统文件后紧接着又出现了相同的系统文件从而再次占用RAM Tree的储存空间。
在另一种可能实现的方式中,所述方法还包括:
若所述Flash中不存在所述Flash Tree,则判断所述RAM Tree的储存空间是否被占满;
若所述RAM Tree的储存空间被占满,则将所述第一RAM Tree作为Flash Tree,以使得对所述RAM Tree进行更新。
通过采用上述技术方案,电子设备判断出Flash中不存在Flash Tree,当RAM Tree的储存空间被占满时,将第一RAM Tree作为Flash Tree,从而完成对RAM Tree的更新,并且下次RAM Tree被占满时所产生的第一RAM Tree与Flash Tree进行合并。以便下次对RAMTree更新时所产生的所需要更新的RAM Tree,能与此时生成的Flash Tree进行合并,逐渐扩大Flash Tree,从而减少Flash Tree的更新次数。
在另一种可能实现的方式中,所述方法还包括:
若所述Flash Tree中存在所述系统文件,则将在所述Flash Tree中命中的系统文件标记为未更新;
在所述Flash Tree中将所述分支系统文件标记为已更新;
若所述RAM Tree更新完成,则将所述RAM Tree中的所述系统文件标记为已更新;
若在所述RAM Tree更新完成后接收到新的系统文件,则控制所述新的系统文件替换所述RAM Tree中标记为已更新的系统文件。
通过采用上述技术方案,电子设备将在Flash Tree中命中的系统文件标记为未更新,将分支系统文件标记为已更新,将两者均加入到RAM Tree中,方便下次电子设备获取到新的系统文件时,将系统文件添加至RAM Tree中能够对已更新到Flash Tree中的系统文件进行准确地替换,充分的利用RAM Tree的储存空间,提高了RAM Tree的利用率。
第二方面,本申请提供一种提升RAM读写性能的装置,采用如下的技术方案:
一种提升RAM读写性能的装置,包括:
获取模块,用于获取系统文件;
第一判断模块,用于判断RAM Tree中是否存在所述系统文件,所述RAM Tree为RAM用于储存系统文件的Tree形结构,所述RAM Tree包括逻辑页、物理页、系统文件与逻辑页的关系、系统文件与物理页的关系以及逻辑页与物理页的关系;
修改模块,用于当所述RAM Tree中存在所述系统文件时,对所述RAM Tree中所述系统文件对应的逻辑页与物理页的关系进行修改;
第二判断模块,用于当所述RAM Tree中不存在所述系统文件时,判断Flash中是否存在Flash Tree,所述Flash Tree为所述Flash用于储存系统文件的Tree形结构,所述Flash Tree包括逻辑页、物理页、系统文件与逻辑页的关系、系统文件与物理页的关系以及逻辑页与物理页的关系;
确定模块,用于当所述Flash中存在所述Flash Tree时,确定所述系统文件与所述Flash Tree的关系;
第三判断模块,用于判断所述RAM Tree的储存空间是否被占满;
添加模块,用于当所述RAM Tree的储存空间未被占满时,基于所述系统文件与所述Flash Tree的关系将所述系统文件添加至所述RAM Tree;
第一更新模块,用于当所述RAM Tree的储存空间被占满时,对所述RAM Tree进行更新。
通过采用上述技术方案,获取模块获取系统文件,第一判断模块判断RAM Tree中是否存在所述系统文件,若RAM Tree中存在系统文件,则通过修改模块对RAM Tree中系统文件对应的逻辑页与物理页的关系进行修改,若RAM Tree中不存在系统文件,则通过第二判断模块判断Flash中是否存在Flash Tree,若Flash中存在Flash Tree,则通过确定模块确定系统文件与Flash Tree的关系,在Flash Tree加载完成后通过第三判断模块判断RAMTree的储存空间是否被占满,若RAM Tree的储存空间未被占满,则基于系统文件与FlashTree的关系通过添加模块将系统文件通过第一预设方式加入RAM Tree中,加入RAM Tree中后下次遇到相同的系统文件,不需要再次操作Flash Tree。若RAM Tree的储存空间被占满,则通过第一更新模块对RAM Tree进行更新,从而充分提高了对RAM的利用率。
在另一种可能的实现方式中,所述修改模块在对所述RAM Tree中所述系统文件对应的逻辑页与物理页的关系进行修改时,具体用于:
将第一系统文件对应的物理页标记为无效,所述第一系统文件为所述RAM Tree中与获取到的系统文件相同的系统文件;
将所述第一系统文件对应的逻辑页指向新的物理页。
在另一种可能的实现方式中,所述确定模块在确定所述系统文件与所述FlashTree的关系时,具体用于:
若加载所述Flash Tree后检测到所述系统文件,则确定所述Flash Tree中存在所述系统文件;
若加载所述Flash Tree后未检测到所述系统文件,则确定所述Flash Tree中不存在所述系统文件。
在另一种可能的实现方式中,所述添加模块在基于所述系统文件与所述FlashTree的关系将所述系统文件添加至所述RAM Tree时,具体用于:
若所述Flash Tree中存在所述系统文件,则将所述系统文件通过第一预设方式加入所述RAM Tree,所述第一预设方式包括:
获取命中的系统文件以及所述命中的系统文件的分支系统文件,所述分支系统文件包括所述命中的系统文件的下一级系统文件;
若所述Flash Tree中不存在所述系统文件,则将所述系统文件添加至所述RAMTree中。
在另一种可能的实现方式中,所述第一更新模块在对所述RAM Tree进行更新时,具体用于:
获取第一系统文件集,所述第一系统文件集包括至少一个系统文件,所述至少一个系统文件是基于系统文件添加到所述RAM Tree中的先后顺序确定的;
基于所述第一系统文件集生成第一RAM Tree,所述第一RAM Tree为需要更新到所述Flash Tree中的RAM Tree;
判断第一数量信息是否不小于第二数量信息,所述第一数量信息为所述第一RAMTree中系统文件的数量信息,所述第二数量信息为所述Flash Tree的任一子Tree中系统文件的数量信息;
若所述第一数量信息小于所述第二数量信息,则循环执行获取所述第一系统文件集,将新的第一系统文件集添加至当前第一RAM Tree中形成新的第一RAM Tree的步骤,直至满足预设条件:
所述预设条件包括:
第三数量信息不小于所述第二数量信息,所述第三数量信息为所述新的第一RAMTree中系统文件的数量信息;
将所述新的第一系统文件集添加至当前第一RAM Tree中形成新的第一RAM Tree,包括以下中的至少一项,
若所述新的第一系统文件集中存在至少一个系统文件与所述当前第一RAM Tree中的系统文件相同,则将所述当前第一RAM Tree中相同的系统文件替换为所述新的第一系统文件集中相同的系统文件;
若所述新的第一系统文件集中不存在与所述当前第一RAM Tree中相同的系统文件,则将所述新的第一系统文件集中的系统文件添加至所述当前第一RAM Tree中;
若所述第一数量信息等于所述第二数量信息,则将所述新的第一RAM Tree与所述Flash Tree进行合并;
若所述第一数量信息大于所述第二数量信息,则将所述新的第一RAM Tree中满足第二数量信息个数的系统文件与所述Flash Tree进行合并。
在另一种可能的实现方式中,所述第一更新模块在获取第一系统文件集时,具体用于:
第一循环步骤:从所述RAM Tree的起始位置获取所述至少一个系统文件以形成所述第一系统文件集,若当前次新的第一系统文件集与上次第一系统文件集满足第一预设条件时,循环执行获取至少一个系统文件的步骤以形成所述当前次新的第一系统文件集,直至所述当前次新的第一系统文件集满足第二预设条件;
若所述当前次新的第一系统文件集满足第二预设条件,则循环执行所述第一循环步骤;
所述第一预设条件包括:
所述新的第一系统文件集中的第一个系统文件与上次第一系统文件集中的末位系统文件添加至所述RAM Tree中的顺序相邻;
所述第二预设条件包括以下中的任意一项:
第二预设条件A,所述当前次新的第一系统文件集中末位的系统文件为所述RAMTree中末位系统文件;
第二预设条件B,所述当前次新的第一系统文件集获取到所述RAM Tree中末位系统文件后未占满所述当前次新的第一系统文件集;
若所述当前次新的第一系统文件集满足所述第二预设条件B,则所述当前次新的第一系统文件集中包括已获取到的所述RAM Tree中末位系统文件以及下次循环周期从所述RAM Tree起始位置获取的至少一个系统文件。
在另一种可能的实现方式中,所述装置还包括:
第四判断模块,用于当所述Flash中不存在所述Flash Tree时,判断所述RAM Tree的储存空间是否被占满;
第二更新模块,用于当所述RAM Tree的储存空间被占满时,将所述第一RAM Tree作为Flash Tree,以使得对所述RAM Tree进行更新。
在另一种可能的实现方式中,所述装置还包括:
第一标记模块,用于当所述Flash Tree中存在所述系统文件时,将命中的系统文件标记为未更新;
第二标记模块,用于将所述分支系统文件标记为已更新;
第三标记模块,用于当所述RAM Tree更新完成时,将所述RAM Tree中的所述系统文件标记为已更新;
替换模块,用于当在所述RAM Tree更新完成后接收到新的系统文件时,将所述RAMTree中标记为已更新的系统文件替换为所述新的系统文件。
第三方面,本申请提供一种电子设备,采用如下的技术方案:
一种电子设备,该电子设备包括:
一个或多个处理器;
存储器;
一个或多个应用程序,其中一个或多个应用程序被存储在存储器中并被配置为由一个或多个处理器执行,一个或多个程序配置用于:执行根据第一方面任一种可能的实现方式所示的一种提升RAM读写性能的方法。
第四方面,本申请提供一种计算机可读存储介质,采用如下的技术方案:
一种计算机可读存储介质,包括:存储有能够被处理器加载并执行实现第一方面任一种可能的实现方式所示的一种提升RAM读写性能的方法的计算机程序。
综上所述,本申请包括以下至少一种有益技术效果:
1. 电子设备获取系统文件,判断RAM Tree中是否存在所述系统文件,若RAM Tree中存在系统文件,则对RAM Tree中系统文件对应的逻辑页与物理页的关系进行修改,若RAMTree中不存在系统文件,则判断Flash中是否存在Flash Tree,若Flash中存在Flash Tree,则确定系统文件与Flash Tree的关系,在Flash Tree加载完成后判断RAM Tree的储存空间是否被占满,若RAM Tree的储存空间未被占满,则基于系统文件与Flash Tree的关系将系统文件通过第一预设方式加入RAM Tree中,加入RAM Tree中后下次遇到相同的系统文件,不需要再次操作加载Flash Tree。若RAM Tree的储存空间被占满,则对RAM Tree进行更新,从而充分提高了对RAM的利用率;
2.电子设备获取到相同的系统文件后将在RAM Tree中的第一系统文件对应的物理页标记为无效,并且将第一系统文件对应的逻辑页指向新的物理页,不再需要将RAMTree中所有的系统文件频繁地进行迁移,由于现有在RAM中储存系统文件的形式是以数组的形式,每次对系统文件进行储存时并非顺序的操作,如果需要随机插入新的系统文件时,就需要对数组中的系统文件进行迁移,本方案采用Tree形结构,对RAM的管理没有排序的需求,只需要通过修改系统文件对应的逻辑页与物理页的关系从而将系统文件添加至RAMTree中,有效地减少了系统文件插入RAM Tree中的时间。
具体实施方式
以下结合附图1-3对本申请作进一步详细说明。
本领域技术人员在阅读完本说明书后可以根据需要对本实施例做出没有创造性贡献的修改,但只要在本申请的权利要求范围内都受到专利法的保护。
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
另外,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,如无特殊说明,一般表示前后关联对象是一种“或”的关系。
下面结合说明书附图对本申请实施例作进一步详细描述。
本申请实施例提供了一种提升RAM读写性能的方法,由电子设备执行,该电子设备可以为服务器也可以为终端设备,其中,该服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云计算服务的云服务器。终端设备可以是智能手机、平板电脑、笔记本电脑、台式计算机等,但并不局限于此,该终端设备以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请实施例在此不做限制,如图1所示,该方法包括步骤S101、步骤S102、步骤S103、步骤S104、步骤S105、步骤S106、步骤S107以及步骤S108,其中,
步骤S101,获取系统文件。
对于本申请实施例,电子设备获取系统文件,获取系统文件后通过FTL写入到Flash内部,从而储存至控制器中。
步骤S102,判断RAM Tree中是否存在系统文件。
其中,RAM Tree为RAM用于储存系统文件的Tree形结构,RAM Tree包括逻辑页、物理页、系统文件与逻辑页的关系、系统文件与物理页的关系以及逻辑页与物理页的关系。
对于本申请实施例,将系统文件当做key(索引),对RAM Tree进行加载,从而检测RAM Tree中是否存在系统文件,将系统文件储存至RAM Tree中时,其中的对应关系为:
系统文件指向逻辑页,逻辑页指向物理页,例如:
电子设备获取到系统文件1,则将其储存至RAM Tree中时,系统文件1指向逻辑页1,逻辑页1指向物理页1。
步骤S103,若RAM Tree中存在系统文件,则对RAM Tree中系统文件对应的逻辑页与物理页的关系进行修改;
对于本申请实施例,在向RAM Tree中添加新的系统文件时,通过修改系统文件对应的逻辑页与物理页的关系从而将系统文件添加至RAM Tree中,不再需要将RAM Tree中所有的系统文件频繁地迁移,有效地减少了系统文件插入RAM Tree中的时间,并且充分利用了RAM Tree的储存空间。
步骤S104,若RAM Tree中不存在系统文件,则判断Flash中是否存在Flash Tree;
其中,Flash Tree为Flash用于储存系统文件的Tree形结构,Flash Tree包括逻辑页、物理页、系统文件与逻辑页的关系、系统文件与物理页的关系以及逻辑页与物理页的关系。
对于本申请实施例,电子设备检测Flash中是否存在Flash Tree,若不存在,通过创建Flash Tree的方式将系统文件储存至Flash中。
步骤S105, 若Flash中存在Flash Tree,则确定系统文件与Flash Tree的关系;
对于本申请实施例,电子设备通过加载Flash Tree来判断Flash Tree与系统文件的关系,确定Flash Tree与系统文件的关系后将系统信息添加至RAM Tree中,若电子设备再次获取到该系统文件,则该系统文件位于RAM Tree中,不需要再次对Flash Tree进行加载,有效减少了对Flash Tree的加载次数。
步骤S106,判断RAM Tree的储存空间是否被占满;
对于本申请实施例,电子设备通过加载RAM Tree判断RAM Tree的储存空间是否被占满,由于RAM Tree中的储存空间有限,为了提高对RAM Tree储存空间的利用率,电子设备需要不断检测RAM Tree中的储存空间是否被占满,以确定RAM Tree中是否还能继续存储新的系统文件,例如:
假设RAM Tree中只有三个储存位置,分别储存了系统文件1、系统文件2以及系统文件3,则此时RAM Tree的储存空间被占满。
步骤S107,若RAM Tree的储存空间未被占满,则基于系统文件与Flash Tree的关系将系统文件添加至RAM Tree;
对于本申请实施例,电子设备通过加载RAM Tree检测到RAM Tree的储存空间未被占满,则将获取到的系统文件能够将添加至RAM Tree,并且若在RAM Tree中不存在电子设备获取的系统文件,通过确定获取的系统文件与Flash Tree的关系将系统文件添加至RAMTree中,直至RAM Tree的储存空间被占满,有效提升对RAM Tree的利用率。
步骤S108,若RAM Tree的储存空间被占满,则对RAM Tree进行更新。
对于本申请实施例,电子设备通过加载RAM Tree检测到RAM Tree的储存空间被占满,则对RAM Tree进行更新,将RAM Tree中的系统文件更新至Flash Tree中,通过对RAMTree进行更新,电子设备能够将新获取到的系统文件添加至RAM Tree中,从而提升对RAMTree的利用率。
本申请实施例的一种可能的实现方式,步骤S103中对RAM Tree中系统文件对应的逻辑页与物理页的关系进行修改,具体包括步骤S1031(图中未示出)以及步骤S1032(图中未示出),其中,
步骤S1031,将第一系统文件对应的物理页标记为无效
其中,第一系统文件为RAM Tree中与获取到的系统文件相同的系统文件。
步骤S1032,将第一系统文件对应的逻辑页指向新的物理页。
对于本申请实施例,若电子设备检测到获取的系统文件在RAM Tree中存在相同的系统文件,则修改在RAM Tree中相同的系统文件对应的逻辑页与物理页的关系,例如:
假设电子设备支持存储10个逻辑页,并且电子设备中存在20个物理页,若RAMTree中只有三个储存位置,分别储存了系统文件1、系统文件2以及系统文件3,则此时RAMTree的储存空间被占满,若电子设备获取到新的系统文件1,通过对RAM Tree进行加载,检测到RAM Tree中存在相同的系统文件1,当前在RAM Tree中:
系统文件1对应逻辑页1,逻辑页1对应物理页1;
系统文件2对应逻辑页2,逻辑页2对应物理页2;
系统文件3对应逻辑页3,逻辑页3对应物理页3;
电子设备获取到与系统文件1相同的新的系统文件1,将在RAM Tree中系统文件1的信息修改为:
系统文件1对应逻辑页1,逻辑页1对应物理页4;
并且将“系统文件1对应逻辑页1,逻辑页1对应物理页1”标记为无效,当RAM Tree中的20个物理页消耗完成后,对无效的系统文件进行回收,对有效的系统文件进行整理,同时将物理页进行释放,例如将物理页1进行释放,下次获取到新的系统文件能够储存在物理页1中,从而使得物理页能够被充分利用。
在本申请实施例中,步骤S1031可以在步骤S1032之前执行,步骤S1031也可以在步骤S1032之后执行,步骤S1031与步骤S1032还可以同时执行,在此不做限定。
本申请实施例的一种可能的实现方式,步骤S105中确定系统文件与Flash Tree的关系,具体包括步骤S1051(图中未示出)和步骤S1052(图中未示出)中的任意一项,其中,
步骤S1051,若加载Flash Tree后检测到系统文件,则确定Flash Tree中存在系统文件;
步骤S1052,若加载Flash Tree后未检测到系统文件,则确定Flash Tree中不存在系统文件。
对于本申请实施例,将系统文件当做key,对Flash Tree进行加载,从而检测FlashTree中是否存在系统文件,例如:
电子设备获取到系统文件1,通过对RAM Tree加载未检测到系统文件1,则将系统文件1作为key,对Flash Tree进行加载,检测Flash Tree中是否存在系统文件1,若在FlashTree中检测到系统文件1,则说明Flash Tree中存在系统文件1,若在Flash Tree中未检测到系统文件1,则说明Flash Tree中不存在系统文件1。
本申请实施例的一种可能的实现方式,步骤S107中基于系统文件与Flash Tree的关系将系统文件添加至RAM Tree,具体包括步骤S1071(图中未示出)和步骤S1072(图中未示出)中的至少一项,其中,
步骤S1071,若Flash Tree中存在系统文件,则将系统文件通过第一预设方式加入RAM Tree。
其中,第一预设方式包括:
获取在Flash Tree中命中的系统文件以及命中的系统文件的分支系统文件,分支系统文件包括在Flash Tree中命中的系统文件的下一级系统文件。
对于本申请实施例,若电子设备通过加载Flash Tree检测到Flash Tree中存在系统文件,则将在Flash Tree中所命中的系统文件以及命中的系统文件的分支系统文件均添加至RAM Tree中,例如:
电子设备获取到系统文件1,通过对RAM Tree加载未检测到系统文件1,则将系统文件1作为key,对Flash Tree进行加载,检测到Flash Tree中存在系统文件1,则将FlashTree中的系统文件1以及系统文件1的分支系统文件2和系统文件3均添加至RAM Tree中;
假设当前RAM Tree为空,并且RAM Tree中能储存4个系统文件,假设电子设备支持存储10个逻辑页,并且电子设备中存在20个物理页,当前RAM Tree中分别储存了系统文件1、系统文件2以及系统文件3:
系统文件1对应逻辑页1,逻辑页1对应物理页1;
系统文件2对应逻辑页2,逻辑页2对应物理页2;
系统文件3对应逻辑页3,逻辑页3对应物理页3;
因为关于系统文件的操作原理是局部集中性的,在出现系统文件1后系统文件2以及系统文件3有可能会出现在接下来的操作中,将系统文件2和系统文件3添加至RAM Tree中有效减少了加载Flash Tree的次数。
步骤S1072,若Flash Tree中不存在系统文件,则将系统文件添加至RAM Tree中。
对于本申请实施例,若电子设备通过加载Flash Tree未检测到Flash Tree中存在系统文件,则将系统文件添加至RAM Tree中,例如:
电子设备获取到系统文件1,通过对RAM Tree加载未检测到系统文件1,则将系统文件1作为key,对Flash Tree进行加载,未检测Flash Tree中存在系统文件1,假设当前RAMTree为空,将系统文件1添加至RAM Tree中:
系统文件1对应逻辑页1,逻辑页1对应物理页1。
本申请实施例的一种可能的实现方式,步骤S108中对RAM Tree进行更新,具体包括步骤S1081(图中未示出)、步骤S1082(图中未示出)、步骤S1083(图中未示出)、步骤S1084(图中未示出)、步骤S1085(图中未示出)、步骤S1086(图中未示出)和步骤S1087(图中未示出),其中,
步骤S1081,获取第一系统文件集,第一系统文件集包括至少一个系统文件,至少一个系统文件是基于系统文件添加到RAM Tree中的先后顺序确定的。
对于本申请实施例,电子设备通过系统文件添加到RAM Tree中的先后顺序获取系统文件,例如,系统文件1、系统文件2、系统文件3、系统文件4、系统文件5、系统文件6以及系统文件7是按照添加到RAM Tree中的先后顺序排列的。电子设备获取三个系统文件以生成第一系统文件集。即,按照添加到RAM Tree中的先后顺序获取到系统文件1、系统文件2以及系统文件3以形成第一系统文件集。
步骤S1082,基于第一系统文件集生成第一RAM Tree,第一RAM Tree为需要更新到Flash Tree中的RAM Tree;
对于本申请实施例,以步骤S1081为例,第一系统文件集包括系统文件1、系统文件2以及系统文件3。电子设备基于上述第一系统文件集生成第一RAM Tree,形成的第一RAMTree即为需要更新到Flash Tree中的RAM Tree。
步骤S1083,判断第一数量信息是否不小于第二数量信息。
其中,第一数量信息为需要更新的RAM Tree中系统文件的数量信息,第二数量信息为Flash Tree的子Tree中系统文件的数量信息。
对于本申请实施例,电子设备判断第一RAM Tree的系统文件数量信息是否不小于Flash Tree的子Tree中系统文件的数量信息。假设Flash Tree的任一子Tree中系统文件的数量信息为5个。电子设备判断第一RAM Tree的系统文件数量信息是否不小于5个。
步骤S1084,若第一数量信息小于第二数量信息,则循环执行获取第一系统文件集,将新的第一系统文件集添加至当前第一RAM Tree中形成新的第一RAM Tree的步骤,直至满足预设条件。
其中,预设条件包括:
第三数量信息不小于第二数量信息,第三数量信息为新的第一RAM Tree中系统文件的数量信息。
对于本申请实施例,以步骤S1082以及步骤S1083为例,若第一RAM Tree的系统文件数量信息小于5个,则电子设备循环执行获取第一系统文件集,并且将新的第一系统文件集添加至当前第一RAM Tree中形成新的第一RAM Tree的步骤,直至新的第一RAM Tree中系统文件的数量信息不小于5个,例如:
假设RAM Tree中能储存7个系统文件,并且RAM Tree当前状态已经储存了7个系统文件,RAM Tree中储存了系统文件1、系统文件2、系统文件3、系统文件4、系统文件5、系统文件6以及系统文件7,并且7个系统文件储存的先后顺序为按照系统文件标号大小进行储存,先储存系统文件1,再储存系统文件2和系统文件3,以此类推最后储存系统文件7,当前RAMTree的储存空间已满,需要对RAM Tree进行更新,并且假设当前Flash Tree中存在11个系统文件,Flash Tree的任一子Tree数量信息为5。
当前第一RAM Tree中有3个系统文件小于5个,电子设备循环获取第一系统文件集,电子设备获取到新的第一系统文件集中包括系统文件4、系统文件5以及系统文件6。电子设备将新的第一系统文件集添加至当前第一RAM Tree中形成第一RAM Tree。此时新的第一RAM Tree中包括6个系统文件,大于5个,即满足预设条件。
本申请实施例的一种可能的实现方式,步骤S1084中将新的第一系统文件集添加至当前第一RAM Tree中形成新的第一RAM Tree,包括以下中的至少一项,
若新的第一系统文件集中存在至少一个系统文件与当前第一RAM Tree中的系统文件相同,则将当前第一RAM Tree中相同的系统文件替换为新的第一系统文件集中相同的系统文件。
对于本申请实施例,若再次获取第一系统文件集的过程中,再次获取到系统文件1,但新的系统文件1对应的逻辑页与物理页的关系发生变化,例如新的系统文件1在RAMTree中的对应关系为:
系统文件1对应逻辑页1,逻辑页1对应物理页5;
将新的系统文件集添加至当前第一RAM Tree中形成新的第一RAM Tree时,对原有储存在第一RAM Tree中的系统文件1进行替换,此时新的第一RAM Tree包括:
系统文件1对应逻辑页1,逻辑页1对应物理页5;
若新的第一系统文件集中不存在与当前第一RAM Tree中相同的系统文件,则将新的第一系统文件集中的系统文件添加至当前第一RAM Tree中。
对于本申请实施例,获取系统文件集,假设RAM Tree中一次更新一个系统文件,第一系统文件集按照添加到RAM Tree的先后顺序获取到系统文件1,并且系统文件1在RAMTree中的对应关系为:
系统文件1对应逻辑页1,逻辑页1对应物理页1;
基于系统文件1生成第一RAM Tree;
当前第一RAM Tree系统文件的数量信息为1,小于Flash Tree的子Tree中系统文件的数量信息2,则再次获取系统文件集,按照添加到RAM Tree的先后顺序获取到系统文件2,并且系统文件2在RAM Tree中的对应关系为:
系统文件2对应逻辑页2,逻辑页2对应物理页2;
将获取的新的系统文件集添加至当前第一RAM Tree中形成新的第一RAM Tree,此时新的第一RAM Tree包括:
系统文件1对应逻辑页1,逻辑页1对应物理页1;
系统文件2对应逻辑页2,逻辑页2对应物理页2;
当前新的第一RAM Tree系统文件的数量信息为2,等于Flash Tree的子Tree中系统文件的数量信息2,则将新的第一RAM Tree与Flash Tree进行合并,合并完成后当前Flash Tree中存在7个系统文件;
步骤S1085,若第一数量信息等于第二数量信息,则将新的第一RAM Tree与FlashTree进行合并。
对于本申请实施例,假设当前第一RAM Tree系统文件的数量信息为5,等于FlashTree的子Tree中系统文件的数量信息5,则将新的第一RAM Tree与Flash Tree进行合并,合并完成后当前Flash Tree中存在16个系统文件。
步骤S1086,若第一数量信息大于第二数量信息,则将新的第一RAM Tree中满足第二数量信息个数的系统文件与Flash Tree进行合并。
对于本申请实施例,假设当前第一RAM Tree系统文件的数量信息为6,大于FlashTree的子Tree中系统文件的数量信息5,则将新的第一RAM Tree中满足Flash Tree的子Tree中系统文件的数量信息的系统文件与Flash Tree进行合并,将新的第一RAM Tree中先获取到的系统文件1至系统文件5与Flash Tree进行合并,合并完成后当前Flash Tree中存在16个系统文件,系统文件6以及系统文件7保留在第一RAM Tree中等待下次合并。
本申请实施例的一种可能的实现方式,步骤S1081中获取第一系统文件集,具体包括步骤S1081a(图中未示出)、步骤S1081b(图中未示出)和步骤S1081c(图中未示出),其中,
步骤S1081a,第一循环步骤:从RAM Tree的起始位置获取至少一个系统文件以形成第一系统文件集,若当前次新的第一系统文件集与上次第一系统文件集满足第一预设条件时,循环执行获取至少一个系统文件的步骤以形成当前次新的第一系统文件集,直至当前次新的第一系统文件集满足第二预设条件。
其中,第一预设条件包括:
新的第一系统文件集中的第一个系统文件与上次第一系统文件集中的末位系统文件添加至RAM Tree中的顺序相邻。
第二预设条件包括以下中的任意一项:
第二预设条件A,当前次新的第一系统文件集中末位的系统文件为RAM Tree中末位系统文件;
第二预设条件B,当前次新的第一系统文件集获取到RAM Tree中末位系统文件后未占满当前次新的第一系统文件集。
对于本申请实施例,电子设备从RAM Tree中获取第一系统文件集时,从RAM Tree的起始位置开始获取,
以步骤S1081为例,当前RAM Tree存储有7个系统文件并且RAM Tree的储存空间已满,需要对RAM Tree进行更新,并且假设当前Flash Tree中存在11个系统文件,Flash Tree的任一子Tree数量信息为5;
假设RAM Tree中一次更新3个系统文件,第一系统文件集按照添加到RAM Tree的先后顺序获取到系统文件1、系统文件2和系统文件3;
基于系统文件1、系统文件2和系统文件3生成第一RAM Tree;
RAM Tree中将系统文件1、系统文件2和系统文件3更新后,电子设备获取系统文件4、系统文件5和系统文件6以形成新的第一系统文件集,并添加至RAM Tree中,此时新的第一系统文件集中的第一个系统文件为系统文件4,而系统文件4与系统文件3加入RAM Tree中的顺序相邻,新的第一系统文件集满足第一预设条件。新的第一系统文件集先储存系统文件4,再储存系统文件5,最后储存系统文件6。
系统文件7与系统文件6满足第一预设条件,电子设备继续获取系统文件7以生成新的第一系统文件集。此时新的第一系统文件集满足第二预设条件B,即此时新的第一系统文件集中仅有系统文件7一个系统文件,获取完RAM Tree中末位系统文件7后未占满当前次新的第一系统文件集。
假设第一系统文件集中的末位系统文件为系统文件7,则第一系统文件集满足第二预设条件A,即获取完RAM Tree末位系统文件7后占满当前次新的第一系统文件集。
步骤S1081b,若当前次新的第一系统文件集满足第二预设条件,则循环执行第一循环步骤。
对于本申请实施例,以步骤S1081a为例,当前次新的第一系统文件集满足第二预设条件A时,说明已经获取到RAM Tree中末位的系统文件,即需要从RAM Tree的起始位置获取3个系统文件以形成新的第一系统文件集,即循环执行第一循环步骤以更新RAM Tree。
若当前次新的第一系统文件集满足第二预设条件B,则当前次新的第一系统文件集中包括已获取到的RAM Tree中末位系统文件以及下次循环周期从RAM Tree起始位置获取的至少一个系统文件。当前次新的第一系统文件集中包括RAM Tree末位的系统文件以及从RAM Tree起始位置获取的至少一个系统文件,此时循环执行第一循环步骤以更新RAMTree。
本申请实施例的一种可能的实现方式,方法还包括步骤S109(图中未示出)和步骤S110(图中未示出),步骤S109和步骤S110可以在步骤S104之后执行,其中,
步骤S109,若Flash中不存在Flash Tree,且RAM Tree的储存空间被占满,则将第一RAM Tree作为Flash Tree,以使得对RAM Tree进行更新。判断RAM Tree的储存空间是否被占满。
对于本申请实施例,电子设备获取到系统文件后,检测到Flash中不存在FlashTree,判断RAM Tree的储存空间是否被占满,若RAM Tree的储存空间未被占满,则将系统文件添加至RAM Tree中,例如:
电子设备获取到系统文件1,将系统文件1储存至RAM Tree中,将系统文件1指向逻辑页1,逻辑页1指向物理页1;
若RAM Tree的储存空间被占满,则需要对RAM Tree进行更新,例如:
以步骤S1081中的RAM Tree为例,假设RAM Tree中一次更新3个系统文件,第一系统文件集按照添加到RAM Tree的先后顺序获取到系统文件1、系统文件2和系统文件3;
基于系统文件1、系统文件2和系统文件3生成第一RAM Tree;
由于当前不存在Flash Tree,则将此时生成的第一RAM Tree作为Flash Tree,以便下次对RAM Tree更新时所产生的所需要更新的RAM Tree,能与此时生成的Flash Tree进行合并,逐渐扩大Flash Tree,从而减少Flash Tree的更新次数。
本申请实施例的一种可能的实现方式,方法还包括步骤S111(图中未示出)、步骤S112(图中未示出)、步骤S113(图中未示出)和步骤S114(图中未示出),其中,
步骤S111,若Flash Tree中存在系统文件,则将命中的系统文件标记为未更新。
对于本申请实施例,电子设备获取到系统文件,若在RAM Tree中未检测到系统文件,通过加载Flash Tree从而检测在Flash Tree中是否存在系统文件,若在Flash Tree中存在系统文件,则对在Flash Tree中所命中的系统文件标记为未更新。例如:
电子设备获取到系统文件1,通过对RAM Tree加载未检测到系统文件1,则将系统文件1作为key,对Flash Tree进行加载,检测Flash Tree中存在系统文件1,将命中的系统文件1标记为未更新,以使得系统文件1添加至RAM Tree中后,电子设备获取到新的系统文件1不需要再次对Flash Tree进行加载。
步骤S112,将分支系统文件标记为已更新。
对于本申请实施例,例如系统文件1的分支系统文件为系统文件2以及系统文件3,电子设备将系统文件2和系统文件3标记为已更新,并且将系统文件1、系统文件2和系统文件3均添加至RAM Tree中。
步骤S113,若RAM Tree更新完成,则将RAM Tree中的系统文件标记为已更新。
对于本申请实施例,若RAM Tree的储存空间被占满,需要对RAM Tree进行更新,假设RAM Tree中当前储存了4个系统文件,分别为系统文件1、系统文件2、系统文件3和系统文件4,
系统文件1对应逻辑页1,逻辑页1对应物理页1;
系统文件2对应逻辑页2,逻辑页2对应物理页2;
系统文件3对应逻辑页3,逻辑页3对应物理页3;
系统文件4对应逻辑页4,逻辑页4对应物理页4;
假设RAM Tree中一次更新3个系统文件,第一系统文件集按照添加到RAM Tree的先后顺序获取到系统文件1、系统文件2和系统文件3,系统文件1、系统文件2以及系统文件3被获取后标记为已更新。
步骤S114,若在RAM Tree更新完成后接收到新的系统文件,则将RAM Tree中标记为已更新的系统文件替换为新的系统文件。
对于本申请实施例,若电子设备获取到新的系统文件,则通过对标记为已更新的系统文件进行替换,从而将系统文件添加至RAM Tree中,例如:
电子设备获取到新的系统文件5,按照添加至RAM Tree中先后顺序,优先将标记为已更新的系统文件1替换为系统文件5,
系统文件5指向逻辑页5,逻辑页5指向物理页5;
若电子设备再获取到新的系统文件6,按照添加至RAM Tree中先后顺序,将标记为已更新的系统文件2替换为系统文件6,
系统文件6指向逻辑页6,逻辑页6指向物理页6。
上述实施例从方法流程的角度介绍一种提升RAM读写性能的方法,下述实施例从虚拟模块或者虚拟单元的角度介绍了一种提升RAM读写性能的装置,具体详见下述实施例。
本申请实施例提供一种提升RAM读写性能的装置,如图2所示,该一种提升RAM读写性能的装置20具体可以包括:
获取模块201,用于获取系统文件;
第一判断模块202,用于判断RAM Tree中是否存在系统文件,RAM Tree为RAM用于储存系统文件的Tree形结构,RAM Tree包括逻辑页、物理页、系统文件与逻辑页的关系、系统文件与物理页的关系以及逻辑页与物理页的关系;
修改模块203,用于当RAM Tree中存在系统文件时,对RAM Tree中系统文件对应的逻辑页与物理页的关系进行修改;
第二判断模块204,用于当RAM Tree中不存在系统文件时,判断Flash中是否存在Flash Tree,Flash Tree为Flash用于储存系统文件的Tree形结构,Flash Tree包括逻辑页、物理页、系统文件与逻辑页的关系、系统文件与物理页的关系以及逻辑页与物理页的关系;
确定模块205,用于当Flash中存在Flash Tree时,确定系统文件与Flash Tree的关系;
第三判断模块206,用于判断RAM Tree的储存空间是否被占满;
添加模块207,用于当RAM Tree的储存空间未被占满时,基于系统文件与FlashTree的关系将系统文件添加至RAM Tree;
第一更新模块208,用于当RAM Tree的储存空间被占满时,对RAM Tree进行更新。
对于本申请实施例,获取模块201获取系统文件,第一判断模块202判断RAM Tree中是否存在系统文件,若RAM Tree中存在系统文件,则通过修改模块203对RAM Tree中系统文件对应的逻辑页与物理页的关系进行修改,若RAM Tree中不存在系统文件,则通过第二判断模块204判断Flash中是否存在Flash Tree,若Flash中存在Flash Tree,则通过确定模块205确定系统文件与Flash Tree的关系,在Flash Tree加载完成后通过第三判断模块206判断RAM Tree的储存空间是否被占满,若RAM Tree的储存空间未被占满,则基于系统文件与Flash Tree的关系通过添加模块207将系统文件通过第一预设方式加入RAM Tree中,加入RAM Tree中后下次遇到相同的系统文件,不需要再次操作Flash Tree。若RAM Tree的储存空间被占满,则通过第一更新模块208对RAM Tree进行更新,从而充分提高了对RAM的利用率。
本申请实施例的一种可能的实现方式,修改模块203在对RAM Tree中系统文件对应的逻辑页与物理页的关系进行修改时,具体用于:
将第一系统文件对应的物理页标记为无效,第一系统文件为RAM Tree中与获取到的系统文件相同的系统文件;
将第一系统文件对应的逻辑页指向新的物理页。
在另一种可能的实现方式中,确定模块在确定系统文件与Flash Tree的关系时,具体用于:
若加载Flash Tree后检测到系统文件,则确定Flash Tree中存在系统文件;
若加载Flash Tree后未检测到系统文件,则确定Flash Tree中不存在系统文件。
在另一种可能的实现方式中,添加模块在基于系统文件与Flash Tree的关系将系统文件添加至RAM Tree时,具体用于:
若Flash Tree中存在系统文件,则将系统文件通过第一预设方式加入RAM Tree,第一预设方式包括:
获取命中的系统文件以及命中的系统文件的分支系统文件,分支系统文件包括命中的系统文件的下一级系统文件;
若Flash Tree中不存在系统文件,则将系统文件添加至RAM Tree中。
本申请实施例的一种可能的实现方式,第一更新模块208在对RAM Tree进行更新时,具体用于:
获取第一系统文件集,第一系统文件集包括至少一个系统文件,至少一个系统文件是基于系统文件添加到RAM Tree中的先后顺序确定的;
基于第一系统文件集生成第一RAM Tree,第一RAM Tree为需要更新到的FlashTree中的RAM Tree;
判断第一数量信息是否不小于第二数量信息,第一数量信息为需要更新的RAMTree中系统文件的数量信息,第二数量信息为Flash Tree的子Tree中系统文件的数量信息;
若第一数量信息小于第二数量信息,则循环执行获取第一系统文件集,将新的第一系统文件集添加至当前第一RAM Tree中形成新的第一RAM Tree的步骤,直至满足预设条件:
预设条件包括:
第三数量信息不小于第二数量信息,第三数量信息为新的第一RAM Tree中系统文件的数量信息;
将新的第一系统文件集添加至当前第一RAM Tree中形成新的第一RAM Tree,包括以下中的至少一项,
若新的第一系统文件集中存在至少一个系统文件与当前第一RAM Tree中的系统文件相同,则将当前第一RAM Tree中相同的系统文件替换为新的第一系统文件集中相同的系统文件;
若新的第一系统文件集中不存在与当前第一RAM Tree中相同的系统文件,则将新的第一系统文件集中的系统文件添加至当前第一RAM Tree中;
若第一数量信息等于第二数量信息,则将新的第一RAM Tree与Flash Tree进行合并;
若第一数量信息大于第二数量信息,则将新的第一RAM Tree中满足第二数量信息个数的系统文件与Flash Tree进行合并。
本申请实施例的一种可能的实现方式,第一更新模块208在对获取第一系统文件集时,具体用于:
第一循环步骤:从RAM Tree的起始位置获取至少一个系统文件以形成第一系统文件集,若当前次新的第一系统文件集与上次第一系统文件集满足第一预设条件时,循环执行获取至少一个系统文件的步骤以形成当前次新的第一系统文件集,直至当前次新的第一系统文件集满足第二预设条件;
若当前次新的第一系统文件集满足第二预设条件,则循环执行第一循环步骤;
第一预设条件包括:
新的第一系统文件集中的第一个系统文件与上次第一系统文件集中的末位系统文件添加至RAM Tree中的顺序相邻;
第二预设条件包括以下中的任意一项:
第二预设条件A,当前次新的第一系统文件集中末位的系统文件为RAM Tree中末位系统文件;
第二预设条件B,当前次新的第一系统文件集获取到RAM Tree中末位系统文件后未占满当前次新的第一系统文件集;
若当前次新的第一系统文件集满足第二预设条件B,则当前次新的第一系统文件集中包括已获取到的RAM Tree中末位系统文件以及下次循环周期从RAM Tree起始位置获取的至少一个系统文件。
本申请实施例的一种可能的实现方式,装置20还包括:
第四判断模块,用于当Flash中不存在Flash Tree时,判断RAM Tree的储存空间是否被占满;
第二更新模块,用于当RAM Tree的储存空间被占满时,将第一RAM Tree作为FlashTree,以使得对RAM Tree进行更新。
本申请实施例的一种可能的实现方式,装置20还包括:
第一标记模块,用于当Flash Tree中存在系统文件时,将命中的系统文件标记为未更新;
第二标记模块,用于将分支系统文件标记为已更新;
第三标记模块,用于当RAM Tree更新完成时,将RAM Tree中的系统文件标记为已更新;
替换模块,用于当在RAM Tree更新完成后接收到新的系统文件时,将RAM Tree中标记为已更新的系统文件替换为新的系统文件。
在本申请实施例中,第一判断模块202、第二判断模块204、第三判断模块206以及第四判断模块可以是相同的判断模块,也可以是不同的判断模块,还可以是部分相同的判断模块。第一更新模块208与第二更新模块可以是相同的更新模块,也可以是不同的更新模块。第一标记模块、第二标记模块以及第三标记模块可以是相同的标记模块,也可以是不同的标记模块,还可以是部分相同的标记模块。
本申请实施例提供了一种提升RAM读写性能的装置20,适用于上述方法实施例,在此不在赘述。
本申请实施例中提供了一种电子设备,如图3所示,图3所示的电子设备30包括:处理器301和存储器303。其中,处理器301和存储器303相连,如通过总线302相连。可选地,电子设备30还可以包括收发器304。需要说明的是,实际应用中收发器304不限于一个,该电子设备30的结构并不构成对本申请实施例的限定。
处理器301可以是CPU(Central Processing Unit,中央处理器),通用处理器,DSP(Digital Signal Processor,数据信号处理器),ASIC(Application SpecificIntegrated Circuit,专用集成电路),FPGA(Field Programmable Gate Array,现场可编程门阵列)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器301也可以是实现计算功能的组合。例如包含一个或多个微处理器组合,DSP和微处理器的组合等。
总线302可包括一通路,在上述组件之间传送信息。总线302可以是PCI(Peripheral Component Interconnect,外设部件互连标准)总线或EISA(ExtendedIndustry Standard Architecture,扩展工业标准结构)总线等。总线302可以分为地址总线、数据总线、控制总线等。为便于表示,图3中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器303可以是ROM(Read Only Memory,只读存储器)或可存储静态信息和指令的其他类型的静态存储设备,RAM(Random Access Memory,随机存取存储器)或者可存储信息和指令的其他类型的动态存储设备,也可以是EEPROM(Electrically ErasableProgrammable Read Only Memory,电可擦可编程只读存储器)、CD-ROM(Compact DiscRead Only Memory,只读光盘)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。
存储器303用于存储执行本申请方案的应用程序代码,并由处理器301来控制执行。处理器301用于执行存储器303中存储的应用程序代码,以实现前述方法实施例所示的内容。
其中,电子设备包括但不限于:移动电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。还可以为服务器等。图3示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,当其在计算机上运行时,使得计算机可以执行前述方法实施例中相应内容。与相关技术相比,电子设备获取系统文件,判断RAM Tree中是否存在所述系统文件,若RAMTree中存在系统文件,则对RAM Tree中系统文件对应的逻辑页与物理页的关系进行修改,若RAM Tree中不存在系统文件,则判断Flash中是否存在Flash Tree,若Flash中存在FlashTree,则确定系统文件与Flash Tree的关系,在Flash Tree加载完成后判断RAM Tree的储存空间是否被占满,若RAM Tree的储存空间未被占满,则基于系统文件与Flash Tree的关系将系统文件通过第一预设方式加入RAM Tree中,加入RAM Tree中后下次遇到相同的系统文件,不需要再次操作查询Flash Tree。若RAM Tree的储存空间被占满,则对RAM Tree进行更新,充分提高了对RAM的利用率。
应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
以上所述仅是本申请的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。