发明内容
有鉴于此,本发明实施例提供了一种内存共享方法、装置、电子设备及可读存储介质,以解决难以通过在本地操作实现内存共享的问题。
根据第一方面,本发明实施例提供了一种内存共享方法,包括:获取服务器对应的目标数据;将所述目标数据存储至内存空间;当检测到需要调用所述目标数据时,则从所述内存空间提取所述目标数据。
本发明实施例提供的内存共享方法,通过获取服务器对应的目标数据,将目标数据存储至内存空间,当检测到本地需要调用目标数据时,则从内存空间提取目标数据。该方法通过将目标数据存储在内存空间,无需向服务器请求,提升目标数据的调用速度以及显示速度,通过在本地操作实现了内存的共享。通过将服务器对应的目标数据存储至内存空间,使得目标数据能够脱离服务器而存在,加速本地数据处理进程。
结合第一方面,在第一方面的第一实施方式中,所述将所述目标数据存储至内存空间,包括:对所述目标数据进行分块处理,得到多个目标数据块;将所述多个目标数据块平行存储至所述内存空间。
本发明实施例提供的内存共享方法,通过对目标数据进行分块处理,得到多个目标数据块,将多个目标数据块平行存储至内存空间据,以便服务器离线时,能够从内存空间中提取剩余的目标数据块,保证本地数据处理进程。
结合第一方面第一实施方式,在第一方面的第二实施方式中,所述将所述多个目标数据块平行存储至所述内存空间,包括:获取所述目标数据的占用空间;判断所述占用空间是否超过预设值;当所述占用空间超过所述预设值时,获取存储至所述内存空间的目标数据块的目标数量;将所述目标数量的所述目标数据块平行存储至所述内存空间。
结合第一方面第二实施方式,在第一方面的第三实施方式中,所述内存共享方法还包括:将剩余的所述目标数据块保存至本地文件,判断是否需要调用所述本地文件中的目标数据块;当需要调用所述本地文件中的目标数据块时,将所述目标数据块提取至所述内存空间。
本发明实施例提供的内存共享方法,通过获取目标数据的占用空间,判断目标数据的占用空间超过预设值时,获取存储至内存空间的目标数据块的目标数量,将目标数量的目标数据块平行存储至内存空间,并将剩余的目标数据块保存至本地文件,由此避免目标数据占用过大的内存,且通过平行存储能够避免多次数据解析,提高了数据提取速度,进而保证了本地数据的处理速度。通过将一部分目标数据块保存至内存,将另一部分目标数据块保存至本地文件,当需要本地文件中的目标数据块时再将其提取至内存,在保证本地数据处理速度的同时保证了本地数据处理进程接续性。
结合第一方面,在第一方面的第四实施方式中,所述从所述内存空间提取所述目标数据,包括:响应于数据访问请求,确定所述数据访问请求对应的目标数据;从所述内存空间中提取所述目标数据。
本发明实施例提供的内存共享方法,通过响应于数据访问请求,确定数据访问请求对应的目标数据,从内存空间中提取目标数据。该方法能够基于数据访问请求提供相应的目标数据,提高了数据提取的准确性,避免了无效数据的提取。
结合第一方面第四实施方式,在第一方面的第五实施方式中,所述从所述内存空间中提取所述目标数据,包括:获取数据提取的起始点和结束点;基于所述起始点和所述结束点,从所述内存空间中提取所述起始点和所述结束点之间的数据,得到所述目标数据。
本发明实施例提供的内存共享方法,通过获取数据提取的起始点和结束点,并基于起始点和结束点从内存空间中提取位于起始点和结束点之间的数据,得到目标数据,在保证目标数据精准提取的同时保证了目标数据的提取灵活性。
结合第一方面,在第一方面的第六实施方式中,所述获取服务器对应的目标数据,包括:向所述服务器发送数据请求信息;接收所述服务器下发的对应于所述数据请求信息的目标数据。
本发明实施例提供的内存共享方法,通过向服务器发送数据请求信息,并接收服务器下发的对应于数据请求信息的目标数据,以将目标数据全部保存至内存空间,便于本地在脱离服务器时仍然能够完成数据处理进程。
根据第二方面,本发明提供了一种内存共享装置,包括:获取模块,用于获取服务器对应的目标数据;存储模块,用于将所述目标数据存储至内存空间;提取模块,用于当检测到需要调用所述目标数据时,则从所述内存空间提取所述目标数据。
本发明实施例提供的内存共享装置,通过获取服务器对应的目标数据,将目标数据存储至内存空间,当检测到本地需要调用目标数据时,则从内存空间提取目标数据。该方法通过将目标数据存储在内存空间,无需向服务器请求,提升目标数据的调用速度以及显示速度,通过在本地操作实现了内存的共享。通过将服务器对应的目标数据存储至内存空间,使得目标数据能够脱离服务器而存在,加速本地数据处理进程。
根据第三方面,本发明提供了一种电子设备,包括:存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行第一方面或第一方面任一实施方式所述的内存共享方法。
根据第四方面,本发明提供了一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使计算机执行第一方面或第一方面任一实施方式所述的内存共享方法。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
根据本发明实施例,提供了一种内存共享方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
在本实施例中提供了一种内存共享方法,可用于电子设备,如手机、平板电脑、电脑等,图1是根据本发明实施例的内存共享方法的流程图,如图1所示,该流程包括如下步骤:
S11,获取服务器对应的目标数据。
目标数据为电子设备本地向服务器请求得到的运行数据,电子设备可以提前从服务器中获取运行数据。例如,当电子设备需要安装一款软件时,此时电子设备能够在软件安装前期从服务器中获取软件数据。
S12,将目标数据存储至内存空间。
内存空间为电子设备的本地内存空间。电子设备将其从服务器中获取的目标数据保存至内存空间中,在本地进行数据处理时,每次执行页面跳转即可直接从内存空间中提取所需数据,无需向服务器请求。具体地,电子设备可以对其获取的目标数据进行数据块划分,并将划分得到的目标数据块依次存储至内存空间。
S13,当检测到需要调用目标数据时,则从内存空间提取目标数据。
电子设备在数据处理过程中,若检测到其需要从服务器获取目标数据时,此时若电子设备所处环境网络环境较好,则直接从服务器中下载目标数据进行使用,若电子设备所处环境网络环境较差,此时电子设备可以从内存空间中提起其所需的目标数据进行调用,以保证数据处理进程不被中断。例如,电子设备下载软件时需要访问服务器以获取软件数据,若网络中断或者网络信号差,则难以跳转页面进行软件下载,而将服务器上对应的软件数据保存至内存空间,即使网络中断或者网络信号差,电子设备仍然能够从内存空间中提取所需软件数据进行软件安装。
同时,由于是内存共享,能够防止内存中的内容被恶意篡改,用户可以通过对内存中的内容进行加密,或者保存双份,其中一份作为源,另外一份共享内容定时与源做匹配以达到内容一致。
本实施例提供的内存共享方法,通过获取服务器对应的目标数据,将目标数据存储至内存空间,当检测到本地需要调用目标数据时,则从内存空间提取目标数据。该方法通过将目标数据存储在内存空间,无需向服务器请求,提升目标数据的调用速度以及显示速度,通过在本地操作实现了内存的共享。通过将服务器对应的目标数据存储至内存空间,使得目标数据能够脱离服务器而存在,加速本地数据处理进程。
在本实施例中提供了一种内存共享方法,可用于电子设备,如手机、平板电脑、电脑等,图2是根据本发明实施例的内存共享方法的流程图,如图2所示,该流程包括如下步骤:
S21,获取服务器对应的目标数据。详细说明参见上述实施例对应步骤S11的相关描述,此处不再赘述。
S22,将目标数据存储至内存空间。
具体地,上述步骤S22可以包括如下步骤:
S221,对目标数据进行分块处理,得到多个目标数据块。
目标数据块为划分目标数据得到的数据块,例如,将1G的目标数据划分为10个目标数据块,且划分得到的10个目标数据块上均存在分块标识符,以便电子设备可以根据其运行过程调用所需要的目标数据块,其中,目标数据的划分可以是均等划分,也可以不均等划分,本申请对此不作具体限定,本领域技术人员可以根据实际需要确定。
S222,将多个目标数据块平行存储至内存空间。
平行存储为各个目标数据块之间不存在嵌套关系,每个目标数据块均可以单独提取进行调用。电子设备在得到多个目标数据块后,按照目标数据块中设置的分块标识符依次存储至内存空间中,由此在电子设备调用某一目标数据块时无需进行嵌套解析,提高了目标数据块的提取速度。
具体地,上述步骤S222可以包括:
(1)获取目标数据的占用空间。
占用空间为存储目标数据所需空间容量。电子设备在获取目标数据时,可以解析目标数据的属性以确定其所需空间容量,以便为其分配合适的本地存储空间。例如,目标数据为300M,电子设备则可以为该目标数据分配300M的本地存储空间。
(2)判断占用空间是否超过预设值。
预设值为内存所支持目标数据的最大存储空间。电子设备可以比较目标数据的占用空间与预设值之间的关系,确定目标数据的占用空间是否超过预设值。当目标数据的占用空间超过预设值时,执行步骤(3),否则跳到步骤(5)执行。
(3)获取存储至内存空间的目标数据块的目标数量。
当目标数据的占用空间超过预设值时,表示内存没有足够存储空间存储该目标数据,此时电子设备可以将部分目标数据块存储至内存空间,其余的保存至本地文件。其中,存储至内存空间的目标数据块的目标数量可以根据内存空间确定,例如,当前存在10个平均划分得到的目标数据块(1~10),而内存空间只能存储3个目标数据块,此时电子设备可以从10个目标数据块中提取1~3的目标数据块存储至本地空间,当然也可以是其他顺序的目标数据块,此处对此不作具体限定。
(4)将目标数量的目标数据块平行存储至内存空间。
在确定需要存储至内存空间中的目标数据块后,电子设备可以将目标数量的目标数据块平行存储至内存空间。例如,当前存在10个平均划分得到的目标数据块(1~10),电子设备可以将1~3的目标数据块依次存储至内存空间。
(5)将剩余的目标数据块保存至本地文件。
电子设备将其余的目标数据块保存至本地文件,生成文件表。以10个平均划分的目标数据块1~10为例,电子设备在将1~3的目标数据块依次存储至内存空间后,可以将4~10的目标数据块保存到本地文件中,并基于4~10的目标数据块生成文件表,以便提取对应分块标识符的目标数据块。
(6)判断是否需要调用本地文件中的目标数据块。
电子设备在运行过程中可以实时检测其是否需要调用本地文件中的目标数据块。当检测到电子设备需要调用本地文件中的目标数据块时,执行步骤(7),否则继续当前的数据处理进程。
(7)将目标数据块提取至内存空间。
当需要调用本地文件中的目标数据块时,此时电子设备可以从本地文件中提取对应的目标数据块,将其提取至内存空间,此时所有电子设备运行所需数据均已存储至内存空间,电子设备可以根据其数据处理进程随时调用目标数据块。例如,电子设备在提取目标数据块1~3并执行完成后,则继续执行需要后续目标数据块,此时电子设备可以从文件表中将其他所需目标数据块提取到内存空间中,以使当前数据处理进程所需目标数据都存储在内存空间中。
S23,当检测到需要调用目标数据时,则从内存空间提取目标数据。详细说明参见上述实施例对应步骤S13的相关描述,此处不再赘述。
本实施例提供的内存共享方法,通过对目标数据进行分块处理,得到多个目标数据块,将多个目标数据块平行存储至内存空间据,以便服务器离线时,能够从内存空间中提取剩余的目标数据块,保证本地数据处理进程。通过获取目标数据的占用空间,判断目标数据的占用空间超过预设值时,获取存储至内存空间的目标数据块的目标数量,将目标数量的目标数据块平行存储至内存空间,并将剩余的目标数据块保存至本地文件,由此避免目标数据占用过大的内存,且通过平行存储能够避免多次数据解析,提高了数据提取速度,进而保证了本地数据的处理速度。通过将一部分目标数据块保存至内存,将另一部分目标数据块保存至本地文件,当需要本地文件中的目标数据块时再将其提取至内存,在保证本地数据处理速度的同时保证了本地数据处理进程接续性。
在本实施例中提供了一种内存共享方法,可用于电子设备,如手机、平板电脑、电脑等,图3是根据本发明实施例的内存共享方法的流程图,如图3所示,该流程包括如下步骤:
S31,获取服务器对应的目标数据。
具体地,上述步骤S31可以包括:
S311,向服务器发送数据请求信息。
数据请求信息用于电子设备从服务器请求相应的目标数据。电子设备可以向服务器发送数据请求信息,并将服务器中的数据存储在内存空间,以便在电子设备需要时能够直接从内存空间提取,无需向服务器发送请求,由此不受网络环境的限制,通过将服务器数据保存至内存空间,实现电子设备脱离服务器后仍然能够直接调用内存空间中的数据完成数据处理。
S312,接收服务器下发的对应于数据请求信息的目标数据。
服务器在接收到电子设备发送的数据请求信息后,可以将对应于该数据请求信息的目标数据发送至电子设备。相应地,电子设备可以接收服务器下发的目标数据。
S32,将目标数据存储至内存空间。详细说明参见上述实施例对应步骤S22的相关描述,此处不再赘述。
S33,当检测到需要调用目标数据时,则从内存空间提取目标数据。
具体地,上述步骤S33可以包括:
S331,响应于数据访问请求,确定数据访问请求对应的目标数据。
电子设备的存储器可以响应于电子设备对其存储数据的数据访问请求,基于数据访问请求从内存空间中搜索对应的目标数据,并将目标数据在内存空间中的存储地址反馈至电子设备的处理器。
S332,从内存空间中提取目标数据。
电子设备的处理器在接收到存储器反馈的存储地址后,可以根据该存储地址从内存空间提取其数据处理所需的目标数据。
具体地,上述步骤S332可以包括:
(1)获取数据提取的起始点和结束点。
起始点为数据提取的起始位置,即待提取数据在内存空间中的起始存储地址;结束点为数据提取的终止位置,即待提取数据在内存空间中的终止存储地址。可选地,电子设备可以是采用指针的移动确定数据提取的起始点,再确定其所需提取数据的长度,确定出数据提起的结束点。具体地,电子设备的处理器每次从内存空间提取数据时,可以获取其所需数据在内存空间的起始存储地址和终止存储地址。
(2)基于起始点和结束点,从内存空间中提取起始点和结束点之间的数据,得到目标数据。
电子设备的处理器在获取到存储地址后,访问内存空间,并根据其获取的数据提取的起始点和结束点,从内存空间中提取出起始点至结束点之间的数据,起始点至结束点之间的数据即为目标数据。
本实施例提供的内存共享方法,通过向服务器发送数据请求信息,并接收服务器下发的对应于数据请求信息的目标数据,以将目标数据全部保存至内存空间,便于本地在脱离服务器时仍然能够完成数据处理进程。通过响应于数据访问请求,确定数据访问请求对应的目标数据,从内存空间中提取目标数据。该方法能够基于数据访问请求提供相应的目标数据,提高了数据提取的准确性,避免了无效数据的提取。通过获取数据提取的起始点和结束点,并基于起始点和结束点从内存空间中提取位于起始点和结束点之间的数据,得到目标数据,在保证目标数据精准提取的同时保证了目标数据的提取灵活性。
在本实施例中还提供了一种内存共享装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
本实施例提供一种内存共享装置,如图4所示,包括:
获取模块41,用于获取服务器对应的目标数据。详细说明参见上述方法实施例对应的相关描述,此处不再赘述。
存储模块42,用于将目标数据存储至内存空间。详细说明参见上述方法实施例对应的相关描述,此处不再赘述。
提取模块43,用于当检测到需要调用目标数据时,则从内存空间提取目标数据。详细说明参见上述方法实施例对应的相关描述,此处不再赘述。
本实施例提供的内存共享装置,通过获取服务器对应的目标数据,将目标数据存储至内存空间,当检测到本地需要调用目标数据时,则从内存空间提取目标数据。该方法通过将目标数据存储在内存空间,无需向服务器请求,提升目标数据的调用速度以及显示速度,通过在本地操作实现了内存的共享。通过将服务器对应的目标数据存储至内存空间,使得目标数据能够脱离服务器而存在,加速本地数据处理进程。
作为本申请一个可选的实施方式,上述存储模块42可以包括:
分块子模块,用于对目标数据进行分块处理,得到多个目标数据块。详细说明参见上述方法实施例对应的相关描述,此处不再赘述。
存储子模块,用于将多个目标数据块平行存储至内存空间。详细说明参见上述方法实施例对应的相关描述,此处不再赘述。
具体地,上述存储子模块可以包括:
第一获取子模块,用于获取目标数据的占用空间。详细说明参见上述方法实施例对应的相关描述,此处不再赘述。
第一判断子模块,用于判断占用空间是否超过预设值。详细说明参见上述方法实施例对应的相关描述,此处不再赘述。
第二获取子模块,用于当占用空间超过预设值时,获取存储至内存空间的目标数据块的目标数量。详细说明参见上述方法实施例对应的相关描述,此处不再赘述。
平行存储子模块,用于将目标数量的目标数据块平行存储至内存空间。详细说明参见上述方法实施例对应的相关描述,此处不再赘述。
保存子模块,用于将剩余的目标数据块保存至本地文件。详细说明参见上述方法实施例对应的相关描述,此处不再赘述。
第二判断子模块,用于判断是否需要调用本地文件中的目标数据块。详细说明参见上述方法实施例对应的相关描述,此处不再赘述。
提取子模块,用于当需要调用本地文件中的目标数据块时,将目标数据块提取至内存空间。详细说明参见上述方法实施例对应的相关描述,此处不再赘述。
作为本申请一个可选的实施方式,上述提取模块43可以包括:
第一响应子模块,用于响应于数据访问请求,确定数据访问请求对应的目标数据。详细说明参见上述方法实施例对应的相关描述,此处不再赘述。
提取子模块,用于从内存空间中提取目标数据。详细说明参见上述方法实施例对应的相关描述,此处不再赘述。
具体地,上述提取子模块可以包括:
第三获取子模块,用于获取数据提取的起始点和结束点。详细说明参见上述方法实施例对应的相关描述,此处不再赘述。
确定子模块,用于基于起始点和结束点,从内存空间中提取起始点和结束点之间的数据,得到目标数据。详细说明参见上述方法实施例对应的相关描述,此处不再赘述。
作为本申请一个可选的实施方式,上述获取模块41可以包括:
发送子模块,用于向服务器发送数据请求信息。详细说明参见上述方法实施例对应的相关描述,此处不再赘述。
接收子模块,用于接收服务器下发的对应于数据请求信息的目标数据。详细说明参见上述方法实施例对应的相关描述,此处不再赘述。
本实施例中的内存共享装置是以功能单元的形式来呈现,这里的单元是指ASIC电路,执行一个或多个软件或固定程序的处理器和存储器,和/或其他可以提供上述功能的器件。
本发明实施例还提供一种电子设备,具有图4所示的内存共享装置。
请参阅图5,图5是本发明可选实施例提供的一种电子设备的结构示意图,如图5所示,该电子设备可以包括:至少一个处理器501,例如CPU(Central Processing Unit,中央处理器),至少一个通信接口503,存储器504,至少一个通信总线502。其中,通信总线502用于实现这些组件之间的连接通信。其中,通信接口503可以包括显示屏(Display)、键盘(Keyboard),可选通信接口503还可以包括标准的有线接口、无线接口。存储器504可以是高速RAM存储器(Random Access Memory,易挥发性随机存取存储器),也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器504可选的还可以是至少一个位于远离前述处理器501的存储装置。其中处理器501可以结合图4所描述的装置,存储器504中存储应用程序,且处理器501调用存储器504中存储的程序代码,以用于执行上述任一方法步骤。
其中,通信总线502可以是外设部件互连标准(peripheral componentinterconnect,简称PCI)总线或扩展工业标准结构(extended industry standardarchitecture,简称EISA)总线等。通信总线502可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
其中,存储器504可以包括易失性存储器(英文:volatile memory),例如随机存取存储器(英文:random-access memory,缩写:RAM);存储器也可以包括非易失性存储器(英文:non-volatile memory),例如快闪存储器(英文:flash memory),硬盘(英文:hard diskdrive,缩写:HDD)或固态硬盘(英文:solid-state drive,缩写:SSD);存储器504还可以包括上述种类存储器的组合。
其中,处理器501可以是中央处理器(英文:central processing unit,缩写:CPU),网络处理器(英文:network processor,缩写:NP)或者CPU和NP的组合。
其中,处理器501还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路(英文:application-specific integrated circuit,缩写:ASIC),可编程逻辑器件(英文:programmable logic device,缩写:PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(英文:complex programmable logic device,缩写:CPLD),现场可编程逻辑门阵列(英文:field-programmable gate array,缩写:FPGA),通用阵列逻辑(英文:generic arraylogic,缩写:GAL)或其任意组合。
可选地,存储器504还用于存储程序指令。处理器501可以调用程序指令,实现如本申请图1至图3实施例中所示的内存共享方法。
本发明实施例还提供了一种非暂态计算机存储介质,所述计算机存储介质存储有计算机可执行指令,该计算机可执行指令可执行上述任意方法实施例中的内存共享方法的处理方法。其中,所述存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)、随机存储记忆体(Random Access Memory,RAM)、快闪存储器(Flash Memory)、硬盘(HardDisk Drive,缩写:HDD)或固态硬盘(Solid-State Drive,SSD)等;所述存储介质还可以包括上述种类的存储器的组合。
虽然结合附图描述了本发明的实施例,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下做出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。