CN104978278A - 数据处理方法和装置 - Google Patents
数据处理方法和装置 Download PDFInfo
- Publication number
- CN104978278A CN104978278A CN201410148478.9A CN201410148478A CN104978278A CN 104978278 A CN104978278 A CN 104978278A CN 201410148478 A CN201410148478 A CN 201410148478A CN 104978278 A CN104978278 A CN 104978278A
- Authority
- CN
- China
- Prior art keywords
- data
- internal memory
- target data
- application
- multiple application
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种数据处理方法和装置。其中,该方法包括:接收多个应用中的至少一个应用发送的用于处理目标数据的请求;根据请求查找目标数据在内存中的地址信息,其中,内存中保存的目标数据共享给多个应用;对地址信息所指示的内存中的目标数据进行处理,并将处理后的目标数据在内存中更新。本发明解决了现有技术中需要从各个应用所对应的数据文件中调用数据所导致的处理速度慢的技术问题,达到了实现对多个应用所对应的内存数据进行数据共享进而提高数据处理速度的技术效果。
Description
技术领域
本申请涉及计算机领域,具体而言,涉及一种数据处理方法和装置。
背景技术
目前,现有的应用中处理数据的方法通常采用以下两种方式:
第一,每一个单独的应用依赖本地内存,通过分别针对各个应用的本地内存中的数据进行数据处理,这样不仅导致了内存空间的浪费,而且在数据更新时,还会有大量的通讯开销与IO开销,此外,在各个应用的本地内存中保存的数据副本还会带来数据的更新同步成本。
第二,依赖第三方存储组件,通过新引入的第三方存储组件对已存储的数据进行数据处理,这样提高了设备的维护成本,而且第三方存储组件还无法方便自由地随应用的自动变化启动与变更,进而还会导致网络IO所造成的性能损耗。
目前,现有技术中的数据处理方法中还存在内存空间浪费,数据更新开销大以及数据成本高,或设备成本高,所要处理的数据不能随应用的变化而变化等技术问题。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本申请实施例提供了一种数据处理方法和装置,以至少解决现有技术中需要从各个应用所对应的数据文件中调用数据所导致的处理速度慢的技术问题。
根据本申请实施例的一个方面,提供了一种数据处理方法,包括:接收多个应用中的至少一个应用发送的用于处理目标数据的请求;根据请求查找目标数据在内存中的地址信息,其中,内存中保存的目标数据共享给多个应用;对地址信息所指示的内存中的目标数据进行处理,并将处理后的目标数据在内存中更新。
可选地,在接收多个应用中的至少一个应用发送的用于处理目标数据的请求之前,该方法还包括:将多个应用所要处理的全部或部分数据映射到内存中,并建立用于标识数据在内存中的位置的地址信息。
可选地,将多个应用所要处理的全部或部分数据映射到内存中包括:判断多个应用的全部数据的大小是否小于内存的容量阈值;若判断出多个应用的全部数据的大小小于或等于内存的容量阈值,则将多个应用的全部数据映射到内存中;若判断出多个应用的全部数据的大小大于内存的容量阈值,则将多个应用的部分数据映射到内存中。
可选地,若判断出多个应用的全部数据的大小大于内存的容量阈值,则将多个应用的部分数据映射到内存中包括:将多个应用启动时的初始化数据映射到内存中,其中,初始化数据包括:多个应用在上一次关闭前在内存中保存的数据;在内存的容量阈值还满足预定条件的情况下继续进行映射,其中,预定条件包括:除初始化数据之外内存中的数据还未达到容量阈值。
可选地,对地址信息所指示的内存中的目标数据进行处理,并将处理后的目标数据在内存中更新包括:在接收到多个应用中的第一个应用发送的用于处理数据的第一请求后,根据第一请求中携带的第一操作信息对地址信息所指示的内存中的目标数据进行处理,得到处理后的目标数据,并将处理后的目标数据在内存中更新;在接收到多个应用中的第二个应用发送的用于处理数据的第二请求后,根据第二请求中携带的第二操作信息对处理后的目标数据进行再次处理,得到再次处理后的目标数据,并将再次处理后的目标数据在内存中更新。
可选地,对目标数据的处理包括以下至少一种操作:对内存中的目标数据进行加载;对内存中的目标数据进行修改;对内存中的目标数据进行删除。
可选地,该方法还包括:按照预定要求将内存中处理后的数据保存至对应的磁盘文件。
根据本申请实施例的另一个方面,还提供了一种数据处理装置,包括:接收单元,用于接收多个应用中的至少一个应用发送的用于处理目标数据的请求;查找单元,用于根据请求查找目标数据在内存中的地址信息,其中,内存中保存的目标数据共享给多个应用;处理单元,用于对地址信息所指示的内存中的目标数据进行处理,并将处理后的目标数据在内存中更新。
可选地,该装置还包括:映射单元,用于将多个应用所要处理的全部或部分数据映射到内存中,并建立用于标识数据在内存中的位置的地址信息。
可选地,映射单元包括:判断模块,用于判断多个应用的全部数据的大小是否小于内存的容量阈值;第一映射模块,用于在判断出多个应用的全部数据的大小小于或等于内存的容量阈值时,将多个应用的全部数据映射到内存中;第二映射模块,用于在判断出多个应用的全部数据的大小大于内存的容量阈值时,将多个应用的部分数据映射到内存中。
可选地,第二映射模块包括:第一映射子模块,用于将多个应用启动时的初始化数据映射到内存中,其中,初始化数据包括:多个应用在上一次关闭前在内存中保存的数据;第二映射子模块,用于在内存的容量阈值还满足预定条件的情况下继续进行映射,其中,预定条件包括:除初始化数据之外内存中的数据还未达到容量阈值。
可选地,处理单元包括:第一处理模块,用于在接收到多个应用中的第一个应用发送的用于处理数据的第一请求后,根据第一请求中携带的第一操作信息对地址信息所指示的内存中的目标数据进行处理,得到处理后的目标数据,并将处理后的目标数据在内存中更新;第二处理模块,用于在接收到多个应用中的第二个应用发送的用于处理数据的第二请求后,根据第二请求中携带的第二操作信息对处理后的目标数据进行再次处理,得到再次处理后的目标数据,并将再次处理后的目标数据在内存中更新。
可选地,处理单元包括以下至少之一:加载模块,用于对内存中的目标数据进行加载;修改模块,用于对内存中的目标数据进行修改;删除模块,用于对内存中的目标数据进行删除。
可选地,该装置还包括:保存单元,用于按照预定要求将内存中处理后的数据保存至对应的磁盘文件。
在本申请实施例中,通过将多个应用所要处理的数据映射到相应的内存中,并建立用于唯一标识上述数据的位置的地址信息。多个应用中的至少一个应用发送用于处理目标数据的请求,根据上述请求查找上述目标数据在内存中的地址信息,再根据上述地址信息所指示的内存中的数据进行处理,当多个应用请求相同的地址信息,则可对相同地址信息所指示的地址下的目标数据进行处理,以达到多个应用共享内存中的数据的目的,从而实现提高数据处理速度的技术效果,这样还增加了数据的可靠性,避免了现有技术中因为存在多个数据副本而导致的数据不一致的技术问题,同时解决了现有技术中需要从各个应用所对应的数据文件中调用数据所导致的处理速度慢的技术问题。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请实施例的一种可选的数据处理方法的流程图;
图2是根据本申请实施例的一种可选的数据处理方法的示意图;
图3是根据本申请实施例的另一种可选的数据处理方法的流程图;
图4是根据本申请实施例的另一种可选的数据处理方法的示意图;
图5是根据本申请实施例的一种可选的数据处理装置的示意图;以及
图6是根据本申请实施例的另一种可选的数据处理装置的示意图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本申请。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
实施例1
根据本申请实施例,提供了一种数据处理方法,如图1所示,该方法包括:
S102,接收多个应用中的至少一个应用发送的用于处理目标数据的请求;
可选地,在本实施例中上述数据处理方法可以应用于终端应用中的数据处理的场景中,其中,上述终端可以包括但不限于以下至少之一:手机、平板电脑。可选地,在本实施例中对目标数据的处理包括以下至少一种操作:对内存中的目标数据进行加载;对内存中的目标数据进行修改;对内存中的目标数据进行删除。可选地,在本实施例中由缓存组件来接收上述用于处理目标数据的请求,其中,在本实施例中的缓存组件可以分别位于各个应用中。
例如,结合图2所示,假设应用A为影视播放应用,应用B为即时通讯应用,应用C为位置导航应用,上述应用共享内存中的数据,当任意一个应用请求对内存中的目标数据进行处理,都可以实现跨进程处理,并将处理后的目标数据在内存中更新。以下举例说明,缓存组件接收到应用B用于加载关于用户登录信息的目标数据的请求后,通过与上述请求相对应的地址信息将上述用户登录信息加载到内存中相对应的位置,并将完成加载后的内存中的目标数据更新;缓存组件又接收到应用C用于修改关于用户登录信息的目标数据的请求,通过请求可知应用B与应用A所请求的地址信息一致,则对相同位置的目标数据(即用户登录信息)进行修改,并将修改后的内存中的目标数据更新。上述举例只是一种示例,本申请对此不作限定。
可选地,在本实施例中的数据处理方法中可以包括但不限于:在接收多个应用中的至少一个应用发送的用于处理目标数据的请求之前,将多个应用所要处理的全部或部分数据映射到内存中。可选地,在本实施例中的部分数据包括但不限于:空、初始化数据。其中,初始化数据包括但不限于:多个应用在上一次关闭前在内存中保存的数据。
可选地,在本实施例中可以但不限于按照预定要求将内存中处理后的数据保存至对应的磁盘文件。其中,上述预定要求可以包括但不限于:定时、用户发出请求。适时将上述内存中已修改的数据保存至磁盘文件,以使上述应用在内存中的修改持久化至对应的磁盘文件。
S104,根据请求查找目标数据在内存中的地址信息;
可选地,在本实施例中的内存中保存的目标数据共享给多个应用。也就是说,多个应用可以共享内存中的数据,并对相同地址信息所指示的地址范围的目标数据进行跨进程处理。
可选地,在本实施例中的地址信息中包括但不限于命名空间的空间名以及对应命名空间下文件的文件名,应用中的不同数据先对应到不同的命名空间,再细化由不同的文件来标识,以使上述在内存中的数据可以由地址信息中不同的文件唯一标识。例如,命名空间A下的文件a所指示的位置的地址信息可以用A-a标识,该地址信息所指示的具体的地址范围可以为0x0000(内存起始位置)~0xFFFF(内存结束位置)。可选地,在本实施例中的多个应用在初始化时建立的地址信息并不唯一固定。
可选地,在本实施例中将多个应用所要处理的全部或部分数据映射到内存中时,还会建立用于标识数据在内存中的位置的地址信息,具体可以通过以下步骤:
S1,判断命名空间中是否包含有用于唯一标识数据在内存中的位置的文件;
S2,若判断出命名空间中包含有用于唯一标识数据在内存中的位置的文件,则将命名空间与文件的文件名所构成的路径作为与请求相对应的地址信息;
S3,若判断出命名空间中不包含有用于唯一标识数据在内存中的位置的文件,则新建文件,并将命名空间与新建的文件的文件名所构成的路径作为与请求相对应的地址信息。
例如,结合图2所示,当多个应用中的应用A启动后,缓存组件会一起初始化,在缓存组件中建立到内存数据的地址信息,例如,命名空间A下的文件a所指示的地址范围的地址信息可以用A-a标识,该地址信息所指示的具体的地址范围可以为0x0000(内存起始位置)~0xFFFF(内存结束位置)。
进一步,当由接收到的应用B所发送的用于处理目标数据的请求中获知,应用B同样要对命名空间A下的文件a所指示的地址范围的目标数据进行处理时,则应用B无需重新建立到内存数据的地址信息,可直接通过已建立的地址信息对上述相应地址范围的目标数据进行处理,以实现不同应用对内存中的数据进行共享的效果。
这里,结合表1做进一步说明,上述地址信息包括与上述处理请求相对应的命名空间,用大写字母标识,以及命名空间中所包括的文件的文件名,用小写字母标识,表1中的三个应用共享内存中所保存的数据。
表1
S106,对地址信息所指示的内存中的目标数据进行处理,并将处理后的目标数据在内存中更新。
例如,以应用A对目标数据进行加载为例,且应用A、应用B、应用C共享内存中的数据,当缓存组件接收到应用A用于加载关于用户登录信息的目标数据的请求后,通过与上述请求相对应的地址信息(例如,命名空间A下的文件a所指示的地址范围的地址信息)将上述用户登录信息加载到内存中相对应的地址范围,并将完成加载后的内存中的目标数据更新。
通过本申请提供的实施例,通过根据多个应用中的至少一个应用发送的用于处理目标数据的请求,查找上述目标数据在内存中的相应的地址信息,其中,内存中保存的目标数据共享给多个应用,并对上述地址信息所指示的地址范围的目标数据进行处理,并将处理后的目标数据在内存中更新,以实现多应用跨进程共享内存中的数据,进而提高了对数据的处理速度。
作为一种可选的方案,在接收多个应用中的至少一个应用发送的用于处理目标数据的请求之前,该方法还包括:
S1,将多个应用所要处理的全部或部分数据映射到内存中,并建立用于标识数据在内存中的位置的地址信息。
可选地,在本实施例中对上述待处理的数据可以但不限于进行全部或部分数据的映射。可选地,在本实施例中是否映射全部数据到内存中的条件包括但不限于:全部数据的数据大小是否小于或等于内存的容量阈值。可选地,在本实施例中的部分数据包括但不限于:空、初始化数据。其中,初始化数据包括但不限于:多个应用在上一次关闭前在内存中保存的数据。可选地,在本实施例中上述多个应用在上一次关闭前在内存中保存的数据可以为:历史数据,例如,历史数据可以为用户的登录信息,用户访问的历史信息。上述举例只是一种示例,本实施例对此不做限定。
进一步结合示例说明建立用于标识数据在内存中的位置的地址信息的方法。例如,应用A启动时,缓存组件初始化建立用于标识数据在内存中的位置的地址信息,假设应用A此次初始化建立的地址信息为命名空间A下的文件a,则用A-a来标识上述地址信息,该地址信息所指示的具体的地址范围可以为0x0000(内存起始位置)~0xFFFF(内存结束位置)。当应用B启动时,也发送了对上述地址信息(即命名空间A下的文件a,用A-a来标识)所指示的地址范围的目标数据的处理请求,则应用B可以跨进程实现对数据进行处理,达到了对内存中的数据进行共享的目的。
通过本申请提供的实施例,通过将所要处理的目标数据先映射到内存中,并为上述目标数据建立用于标识在所述内存中的位置的地址信息,以使上述多个不同的应用可以通过相同的地址信息实现对内存中的目标数据进行共享的效果,进而提高对数据的处理速度,改善用户体验。
作为一种可选的方案,将多个应用所要处理的全部或部分数据映射到内存中包括:
S1,判断多个应用的全部数据的大小是否小于内存的容量阈值;
S2,若判断出多个应用的全部数据的大小小于或等于内存的容量阈值,则将多个应用的全部数据映射到内存中;
S3,若判断出多个应用的全部数据的大小大于内存的容量阈值,则将多个应用的部分数据映射到内存中。
例如,当内存的容量阈值为500M,则判断发送用于处理目标数据的请求的应用A所要处理的全部数据的大小为多少,是否满足小于内存的容量阈值(即500M)的条件。
又例如,当内存的容量阈值为500M,假设发送用于处理目标数据的请求的应用A所要处理的全部数据为200M,即应用A的全部数据的大小小于内存的容量阈值,则将上述应用A的全部数据映射到内存中。
又例如,当内存的容量阈值为500M,假设发送用于处理数据的请求的应用A所要处理的全部数据为800M,即应用的全部数据的大小大于内存的容量阈值,则只将上述应用A的部分数据映射到内存中。
通过本申请提供的实施例,通过比较应用所要映射数据的大小与内存的容量阈值,适量映射所要处理的目标数据,使得内存可以在容量阈值的范围内进行合理的数据映射,避免映射数量过大导致的系统故障。
作为一种可选的方案,如图3所示,若判断出多个应用的全部数据的大小大于内存的容量阈值,则将多个应用的部分数据映射到内存中包括:
S302,将多个应用启动时的初始化数据映射到内存中;
可选地,在本实施例中的初始化数据可以包括:多个应用在上一次关闭前在内存中保存的数据,在本实施例中上述多个应用在上一次关闭前在内存中保存的数据可以为:历史数据,例如,历史数据可以为用户的登录信息,用户访问的历史信息。上述举例只是一种示例,本实施例对此不做限定。
例如,当内存的容量阈值为500M,应用A、应用B、应用C所要处理的全部数据为800M,即大于内存的容量阈值,则将只映射上述应用在启动时的初始化数据。又例如,应用A中包括上一次关闭前的用户登录信息10M,应用B中包括上衣关闭前用户访问的历史信息50M,而用户C在上一次关闭前没有保存数据,则基于上述判断,将会把上述应用A、应用B、应用C启动时的初始化数据共60M映射到内存中。
S304,在内存的容量阈值还满足预定条件的情况下继续进行映射。
可选地,在本实施例中的预定条件包括:除初始化数据之外内存中的数据还未达到容量阈值。例如,当应用A启动后,并将初始化数据映射到内存后,上述内存中的数据还未达到内存的容量阈值,则可将应用A所要处理的目标继续映射到内存中。
可选地,在本实施例中当应用运行时请求加载新的目标数据,若加载的目标数据超出了内存的地址信息所指示的地址范围,则可用新加载的数据来替换内存中已映射的数据。
例如,在应用A正常运行时,向缓存组件发送了用于加载新的目标数据的请求,则将新加载的目标数据按照地址信息所指示的地址范围进行映射,假设所要加载的数据的大小超出了内存的地址信息所指示的地址范围时,则可用新加载的数据来替换内存中已映射的数据。结合图4所示,假设内存中有8个位置空间,其中,已映射的目标数据分别为1000、0001、0010、1011、0100、0101、0110、0111,已经占满上述地址信息所指示的地址范围,若还要加载目标数据1111、1001、1010,则需用目标数据1111、1001、1010来替换内存中已映射的目标数据1000、0001、0010。
通过本申请提供的实施例,当判断出多个应用的全部数据的大小大于内存的容量阈值,则将多个应用的部分数据先映射到内存中,同理,当应用所请求的目标数据的大小大于地址信息所指示的地址范围,则可用新加载的数据来替换内存中已映射的数据,这样用新数据覆盖旧数据,大大节省了数据空间。
作为一种可选的方案,对地址信息所指示的内存中的目标数据进行处理,并将处理后的目标数据在内存中更新包括:
S1,在接收到多个应用中的第一个应用发送的用于处理数据的第一请求后,根据第一请求中携带的第一操作信息对地址信息所指示的内存中的目标数据进行处理,得到处理后的目标数据,并将处理后的目标数据在内存中更新;
S2,在接收到多个应用中的第二个应用发送的用于处理数据的第二请求后,根据第二请求中携带的第二操作信息对处理后的目标数据进行再次处理,得到再次处理后的目标数据,并将再次处理后的目标数据在内存中更新。
例如,结合图2所示,假设应用A、应用B、应用C共享内存中的数据,缓存组件接收到应用B发送的第一请求后,其中,第一请求中携带有对关于用户登录信息的目标数据进行加载的第一操作信息,通过上述第一请求中获知的相对应的地址信息,将上述用户登录信息加载到内存中上述地址信息所指示的地址范围内,并将完成加载后的内存中的目标数据更新;缓存组件又接收到应用C发送的第二请求后,其中,第二请求中携带有对关于用户登录信息的目标数据进行修改的第二操作信息,在通过请求可知应用B与应用A所请求的地址信息一致,则对相同地址范围内的目标数据(即用户登录信息)进行修改,并将修改后的内存中的目标数据更新。
通过本申请提供的实施例,通过共享内存中的数据,使得不同的应用可以直接对内存中的数据进行处理,进而提高了数据的处理速度。
作为一种可选的方案,对目标数据的处理包括以下至少一种操作:
S1,对内存中的目标数据进行加载;
S2,对内存中的目标数据进行修改;
S3,对内存中的目标数据进行删除。
作为一种可选的方案,该方法还包括:
S1,按照预定要求将内存中处理后的数据保存至对应的磁盘文件。
可选地,在本实施例中可以但不限于按照预定要求将内存中处理后的数据保存至对应的磁盘文件。其中,上述预定要求可以包括但不限于:定时、用户发出请求。适时将上述内存中已修改的数据保存至磁盘文件,以使上述应用在内存中的修改持久化至对应的磁盘文件。
本申请提供了一种优选的实施例来进一步对本申请进行解释,但是值得注意的是,该优选实施例只是为了更好的描述本申请,并不构成对本申请不当的限定。
实施例2
根据本申请实施例,还提供了一种数据处理装置,如图5所示,在本实施例中该装置包括:
(1)接收单元502,用于接收多个应用中的至少一个应用发送的用于处理目标数据的请求;
可选地,在本实施例中上述数据处理方法可以应用于终端应用中的数据处理的场景中,其中,上述终端可以包括但不限于以下至少之一:手机、平板电脑。可选地,在本实施例中对目标数据的处理包括以下至少一种操作:对内存中的目标数据进行加载;对内存中的目标数据进行修改;对内存中的目标数据进行删除。可选地,在本实施例中由缓存组件来接收上述用于处理目标数据的请求,其中,在本实施例中的缓存组件可以分别位于各个应用中。
例如,结合图2所示,假设应用A为影视播放应用,应用B为即时通讯应用,应用C为位置导航应用,上述应用共享内存中的数据,当任意一个应用请求对内存中的目标数据进行处理,都可以实现跨进程处理,并将处理后的目标数据在内存中更新。以下举例说明,缓存组件接收到应用B用于加载关于用户登录信息的目标数据的请求后,通过与上述请求相对应的地址信息将上述用户登录信息加载到内存中相对应的位置,并将完成加载后的内存中的目标数据更新;缓存组件又接收到应用C用于修改关于用户登录信息的目标数据的请求,通过请求可知应用B与应用A所请求的地址信息一致,则对相同位置的目标数据(即用户登录信息)进行修改,并将修改后的内存中的目标数据更新。上述举例只是一种示例,本申请对此不作限定。
可选地,在本实施例中的数据处理方法中可以包括但不限于:在接收多个应用中的至少一个应用发送的用于处理目标数据的请求之前,将多个应用所要处理的全部或部分数据映射到内存中。可选地,在本实施例中的部分数据包括但不限于:空、初始化数据。其中,初始化数据包括但不限于:多个应用在上一次关闭前在内存中保存的数据。
可选地,在本实施例中可以但不限于按照预定要求将内存中处理后的数据保存至对应的磁盘文件。其中,上述预定要求可以包括但不限于:定时、用户发出请求。适时将上述内存中已修改的数据保存至磁盘文件,以使上述应用在内存中的修改持久化至对应的磁盘文件。
(2)查找单元504,根据请求查找目标数据在内存中的地址信息,其中,内存中保存的目标数据共享给多个应用;
可选地,在本实施例中的内存中保存的目标数据共享给多个应用。也就是说,多个应用可以共享内存中的数据,并对相同地址信息所指示的地址范围的目标数据进行跨进程处理。
可选地,在本实施例中的地址信息中包括但不限于命名空间的空间名以及对应命名空间下文件的文件名,应用中的不同数据先对应到不同的命名空间,再细化由不同的文件来标识,以使上述在内存中的数据可以由地址信息中不同的文件唯一标识。例如,命名空间A下的文件a所指示的位置的地址信息可以用A-a标识,该地址信息所指示的具体的地址范围可以为0x0000(内存起始位置)~0xFFFF(内存结束位置)。可选地,在本实施例中的多个应用在初始化时建立的地址信息并不唯一固定。
可选地,在本实施例中将多个应用所要处理的全部或部分数据映射到内存中时,还会建立用于标识数据在内存中的位置的地址信息,具体可以通过以下步骤:
S1,判断命名空间中是否包含有用于唯一标识数据在内存中的位置的文件;
S2,若判断出命名空间中包含有用于唯一标识数据在内存中的位置的文件,则将命名空间与文件的文件名所构成的路径作为与请求相对应的地址信息;
S3,若判断出命名空间中不包含有用于唯一标识数据在内存中的位置的文件,则新建文件,并将命名空间与新建的文件的文件名所构成的路径作为与请求相对应的地址信息。
例如,结合图2所示,当多个应用中的应用A启动后,缓存组件会一起初始化,在缓存组件中建立到内存数据的地址信息,例如,命名空间A下的文件a所指示的地址范围的地址信息可以用A-a标识,该地址信息所指示的具体的地址范围可以为0x0000(内存起始位置)~0xFFFF(内存结束位置)。
进一步,当由接收到的应用B所发送的用于处理目标数据的请求中获知,应用B同样要对命名空间A下的文件a所指示的地址范围的目标数据进行处理时,则应用B无需重新建立到内存数据的地址信息,可直接通过已建立的地址信息对上述相应地址范围的目标数据进行处理,以实现不同应用对内存中的数据进行共享的效果。
这里,结合表2做进一步说明,上述地址信息包括与上述处理请求相对应的命名空间,用大写字母标识,以及命名空间中所包括的文件的文件名,用小写字母标识,表2中的三个应用共享内存中所保存的数据。
表2
(3)处理单元506,用于对地址信息所指示的内存中的目标数据进行处理,并将处理后的目标数据在内存中更新。
例如,以应用A对目标数据进行加载为例,且应用A、应用B、应用C共享内存中的数据,当缓存组件接收到应用A用于加载关于用户登录信息的目标数据的请求后,通过与上述请求相对应的地址信息(例如,命名空间A下的文件a所指示的地址范围的地址信息)将上述用户登录信息加载到内存中相对应的地址范围,并将完成加载后的内存中的目标数据更新。
通过本申请提供的实施例,通过根据多个应用中的至少一个应用发送的用于处理目标数据的请求,查找上述目标数据在内存中的相应的地址信息,其中,内存中保存的目标数据共享给多个应用,并对上述地址信息所指示的地址范围的目标数据进行处理,并将处理后的目标数据在内存中更新,以实现多应用跨进程共享内存中的数据,进而提高了对数据的处理速度。
作为一种可选的方案,如图6所示,在本实施例中该装置还包括:
(1)映射单元602,用于将多个应用所要处理的全部或部分数据映射到内存中,并建立用于标识数据在内存中的位置的地址信息。
可选地,在本实施例中对上述待处理的数据可以但不限于进行全部或部分数据的映射。可选地,在本实施例中是否映射全部数据到内存中的条件包括但不限于:全部数据的数据大小是否小于或等于内存的容量阈值。可选地,在本实施例中的部分数据包括但不限于:空、初始化数据。其中,初始化数据包括但不限于:多个应用在上一次关闭前在内存中保存的数据。可选地,在本实施例中上述多个应用在上一次关闭前在内存中保存的数据可以为:历史数据,例如,历史数据可以为用户的登录信息,用户访问的历史信息。上述举例只是一种示例,本实施例对此不做限定。
进一步结合示例说明,建立用于标识数据在内存中的位置的地址信息的方法。例如,应用A启动时,缓存组件初始化建立用于标识数据在内存中的位置的地址信息,假设应用A此次初始化建立的地址信息为命名空间A下的文件a,则用A-a来标识上述地址信息,该地址信息所指示的具体的地址范围可以为0x0000(内存起始位置)~0xFFFF(内存结束位置)。当应用B启动时,也发送了对上述地址信息(即命名空间A下的文件a,用A-a来标识)所指示的地址范围的目标数据的处理请求,则应用B可以跨进程实现对数据进行处理,达到了对内存中的数据进行共享的目的。
通过本申请提供的实施例,通过将所要处理的目标数据先映射到内存中,并为上述目标数据建立用于标识在所述内存中的位置的地址信息,以使上述多个不同的应用可以通过相同的地址信息实现对内存中的目标数据进行共享的效果,进而提高对数据的处理速度,改善用户体验。
作为一种可选的方案,映射单元602包括:
(1)判断模块,用于判断多个应用的全部数据的大小是否小于内存的容量阈值;
(2)第一映射模块,用于在判断出多个应用的全部数据的大小小于或等于内存的容量阈值时,将多个应用的全部数据映射到内存中;
(3)第二映射模块,用于在判断出多个应用的全部数据的大小大于内存的容量阈值时,将多个应用的部分数据映射到内存中。
例如,当内存的容量阈值为500M,则判断发送用于处理目标数据的请求的应用A所要处理的全部数据的大小为多少,是否满足小于内存的容量阈值(即500M)的条件。
又例如,当内存的容量阈值为500M,假设发送用于处理目标数据的请求的应用A所要处理的全部数据为200M,即应用A的全部数据的大小小于内存的容量阈值,则将上述应用A的全部数据映射到内存中。
又例如,当内存的容量阈值为500M,假设发送用于处理数据的请求的应用A所要处理的全部数据为800M,即应用的全部数据的大小大于内存的容量阈值,则只将上述应用A的部分数据映射到内存中。
通过本申请提供的实施例,通过比较应用所要映射数据的大小与内存的容量阈值,适量映射所要处理的目标数据,使得内存可以在容量阈值的范围内进行合理的数据映射,避免映射数量过大导致的系统故障。
作为一种可选的方案,第二映射模块包括:
(1)第一映射子模块,用于将多个应用启动时的初始化数据映射到内存中,其中,初始化数据包括:多个应用在上一次关闭前在内存中保存的数据;
可选地,在本实施例中的初始化数据可以包括:多个应用在上一次关闭前在内存中保存的数据,在本实施例中上多个述应用在上一次关闭前在内存中保存的数据可以为:历史数据,例如,历史数据可以为用户的登录信息,用户访问的历史信息。上述举例只是一种示例,本实施例对此不做限定。
例如,当内存的容量阈值为500M,应用A、应用B、应用C所要处理的全部数据为800M,即大于内存的容量阈值,则将只映射上述应用在启动时的初始化数据。又例如,应用A中包括上一次关闭前的用户登录信息10M,应用B中包括上衣关闭前用户访问的历史信息50M,而用户C在上一次关闭前没有保存数据,则基于上述判断,将会把上述应用A、应用B、应用C启动时的初始化数据共60M映射到内存中。
(2)第二映射子模块,用于在内存的容量阈值还满足预定条件的情况下继续进行映射,其中,预定条件包括:除初始化数据之外内存中的数据还未达到容量阈值。
可选地,在本实施例中的预定条件包括:除初始化数据之外内存中的数据还未达到容量阈值。例如,当应用A启动后,并将初始化数据映射到内存后,上述内存中的数据还未达到内存的容量阈值,则可将应用A所要处理的目标继续映射到内存中。
可选地,在本实施例中当应用运行时请求加载新的目标数据,若加载的目标数据超出了内存的地址信息所指示的地址范围,则可用新加载的数据来替换内存中已映射的数据。
例如,在应用A正常运行时,向缓存组件发送了用于加载新的目标数据的请求,则将新加载的目标数据按照地址信息所指示的地址范围进行映射,假设所要加载的数据的大小超出了内存的地址信息所指示的地址范围时,则可用新加载的数据来替换内存中已映射的数据。结合图4所示,假设内存中有8个位置空间,其中,已映射的目标数据分别为1000、0001、0010、1011、0100、0101、0110、0111,已经占满上述地址信息所指示的地址范围,若还要加载目标数据1111、1001、1010,则需用目标数据1111、1001、1010来替换内存中已映射的目标数据1000、0001、0010。
通过本申请提供的实施例,当判断出多个应用的全部数据的大小大于内存的容量阈值,则将多个应用的部分数据先映射到内存中,同理,当应用所请求的目标数据的大小大于地址信息所指示的地址范围,则可用新加载的数据来替换内存中已映射的数据,这样用新数据覆盖旧数据,大大节省了数据空间。
作为一种可选的方案,处理单元506包括:
(1)第一处理模块,用于在接收到多个应用中的第一个应用发送的用于处理数据的第一请求后,根据第一请求中携带的第一操作信息对地址信息所指示的内存中的目标数据进行处理,得到处理后的目标数据,并将处理后的目标数据在内存中更新;
(2)第二处理模块,用于在接收到多个应用中的第二个应用发送的用于处理数据的第二请求后,根据第二请求中携带的第二操作信息对处理后的目标数据进行再次处理,得到再次处理后的目标数据,并将再次处理后的目标数据在内存中更新。
例如,结合图2所示,假设应用A、应用B、应用C共享内存中的数据,缓存组件接收到应用B发送的第一请求后,其中,第一请求中携带有对关于用户登录信息的目标数据进行加载的第一操作信息,通过上述第一请求中获知的相对应的地址信息,将上述用户登录信息加载到内存中上述地址信息所指示的地址范围内,并将完成加载后的内存中的目标数据更新;缓存组件又接收到应用C发送的第二请求后,其中,第二请求中携带有对关于用户登录信息的目标数据进行修改的第二操作信息,在通过请求可知应用B与应用A所请求的地址信息一致,则对相同地址范围内的目标数据(即用户登录信息)进行修改,并将修改后的内存中的目标数据更新。
通过本申请提供的实施例,通过共享内存中的数据,使得不同的应用可以直接对内存中的数据进行处理,进而提高了数据的处理速度。
作为一种可选的方案,处理单元包括以下至少之一:加载模块,用于对内存中的目标数据进行加载;修改模块,用于对内存中的目标数据进行修改;删除模块,用于对内存中的目标数据进行删除。
作为一种可选的方案,在本实施例中该装置还包括:
(1)保存单元,用于按照预定要求将内存中处理后的数据保存至对应的磁盘文件。
可选地,在本实施例中可以但不限于按照预定要求将内存中处理后的数据保存至对应的磁盘文件。其中,上述预定要求可以包括但不限于:定时、用户发出请求。适时将上述内存中已修改的数据保存至磁盘文件,以使上述应用在内存中的修改持久化至对应的磁盘文件。
本申请提供了一种优选的实施例来进一步对本申请进行解释,但是值得注意的是,该优选实施例只是为了更好的描述本申请,并不构成对本申请不当的限定。
从以上的描述中,可以看出,在本申请实施例中,通过将多个应用所要处理的数据映射到相应的内存中,并建立用于唯一标识上述数据的位置的地址信息。多个应用中的至少一个应用发送用于处理目标数据的请求,根据上述请求查找上述目标数据在内存中的地址信息,再根据上述地址信息所指示的内存中的数据进行处理,当多个应用请求相同的地址信息,则可对相同地址信息所指示的地址下的目标数据进行处理,以达到多个应用共享内存中的数据的目的,从而实现提高数据处理速度的技术效果,这样还增加了数据的可靠性,避免了现有技术中因为存在多个数据副本而导致的数据不一致的技术问题,同时解决了现有技术中需要从各个应用所对应的数据文件中调用数据所导致的处理速度慢的技术问题。
以上仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (10)
1.一种数据处理方法,其特征在于,包括:
接收多个应用中的至少一个应用发送的用于处理目标数据的请求;
根据所述请求查找所述目标数据在内存中的地址信息,其中,所述内存中保存的所述目标数据共享给所述多个应用;
对所述地址信息所指示的所述内存中的所述目标数据进行处理,并将处理后的所述目标数据在所述内存中更新。
2.根据权利要求1所述的方法,其特征在于,在接收所述多个应用中的至少一个应用发送的所述用于处理目标数据的请求之前,所述方法还包括:
将所述多个应用所要处理的全部或部分数据映射到所述内存中,并建立用于标识所述数据在所述内存中的位置的地址信息。
3.根据权利要求2所述的方法,其特征在于,所述将所述多个应用所要处理的所述全部或部分数据映射到所述内存中包括:
判断所述多个应用的全部数据的大小是否小于所述内存的容量阈值;
若判断出所述多个应用的全部数据的大小小于或等于所述内存的容量阈值,则将所述多个应用的全部数据映射到所述内存中;
若判断出所述多个应用的全部数据的大小大于所述内存的容量阈值,则将所述多个应用的部分数据映射到所述内存中。
4.根据权利要求3所述的方法,其特征在于,所述若判断出所述多个应用的全部数据的大小大于所述内存的容量阈值,则将所述多个应用的部分数据映射到所述内存中包括:
将所述多个应用启动时的初始化数据映射到所述内存中,其中,所述初始化数据包括:所述多个应用在上一次关闭前在所述内存中保存的所述数据;
在所述内存的容量阈值还满足预定条件的情况下继续进行映射,其中,所述预定条件包括:除所述初始化数据之外所述内存中的数据还未达到容量阈值。
5.根据权利要求1所述的方法,其特征在于,所述对所述地址信息所指示的所述内存中的所述目标数据进行处理,并将处理后的所述目标数据在所述内存中更新包括:
在接收到所述多个应用中的第一个应用发送的用于处理所述数据的第一请求后,根据所述第一请求中携带的第一操作信息对所述地址信息所指示的所述内存中的所述目标数据进行处理,得到处理后的目标数据,并将所述处理后的目标数据在所述内存中更新;
在接收到所述多个应用中的第二个应用发送的用于处理所述数据的第二请求后,根据所述第二请求中携带的第二操作信息对所述处理后的目标数据进行再次处理,得到再次处理后的目标数据,并将所述再次处理后的目标数据在所述内存中更新。
6.根据权利要求5所述的方法,其特征在于,对所述目标数据的处理包括以下至少一种操作:
对所述内存中的所述目标数据进行加载;
对所述内存中的所述目标数据进行修改;
对所述内存中的所述目标数据进行删除。
7.根据权利要求1-6中任一项所述的方法,其特征在于,所述方法还包括:
按照预定要求将所述内存中处理后的所述数据保存至对应的磁盘文件。
8.一种数据处理装置,其特征在于,包括:
接收单元,用于接收多个应用中的至少一个应用发送的用于处理目标数据的请求;
查找单元,用于根据所述请求查找所述目标数据在内存中的地址信息,其中,所述内存中保存的所述目标数据共享给所述多个应用;
处理单元,用于对所述地址信息所指示的所述内存中的所述目标数据进行处理,并将处理后的所述目标数据在所述内存中更新。
9.根据权利要求8所述的装置,其特征在于,所述装置还包括:
映射单元,用于将所述多个应用所要处理的全部或部分数据映射到所述内存中,并建立用于标识所述数据在所述内存中的位置的地址信息。
10.根据权利要求9所述的装置,其特征在于,所述映射单元包括:
判断模块,用于判断所述多个应用的全部数据的大小是否小于所述内存的容量阈值;
第一映射模块,用于在判断出所述多个应用的全部数据的大小小于或等于所述内存的容量阈值时,将所述多个应用的全部数据映射到所述内存中;
第二映射模块,用于在判断出所述多个应用的全部数据的大小大于所述内存的容量阈值时,将所述多个应用的部分数据映射到所述内存中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410148478.9A CN104978278B (zh) | 2014-04-14 | 2014-04-14 | 数据处理方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410148478.9A CN104978278B (zh) | 2014-04-14 | 2014-04-14 | 数据处理方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104978278A true CN104978278A (zh) | 2015-10-14 |
CN104978278B CN104978278B (zh) | 2020-05-29 |
Family
ID=54274807
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410148478.9A Active CN104978278B (zh) | 2014-04-14 | 2014-04-14 | 数据处理方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104978278B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106657284A (zh) * | 2016-11-29 | 2017-05-10 | 成都华为技术有限公司 | 数据流处理的方法和装置 |
CN107463395A (zh) * | 2016-06-03 | 2017-12-12 | 腾讯科技(深圳)有限公司 | 组件调用方法及装置 |
CN108228876A (zh) * | 2018-01-19 | 2018-06-29 | 维沃移动通信有限公司 | 一种读取文件数据的方法及移动终端 |
CN108334383A (zh) * | 2018-03-30 | 2018-07-27 | 联想(北京)有限公司 | 一种信息处理方法及电子设备 |
WO2019223667A1 (zh) * | 2018-05-24 | 2019-11-28 | 华为技术有限公司 | 一种用于终端的信息查询方法及终端 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1740978A (zh) * | 2004-08-23 | 2006-03-01 | 华为技术有限公司 | 实现共享内存数据库的方法及内存数据库系统 |
CN101329657A (zh) * | 2007-06-19 | 2008-12-24 | 瑞达信息安全产业股份有限公司 | 一种用于多应用间的安全共享动态内存系统和方法 |
CN101650670A (zh) * | 2008-08-14 | 2010-02-17 | 鸿富锦精密工业(深圳)有限公司 | 可共享应用程序配置参数的电子系统及其方法 |
CN102006241A (zh) * | 2010-12-17 | 2011-04-06 | 天津曙光计算机产业有限公司 | 一种多个应用共享一个缓冲区的报文接收方法 |
CN102455943A (zh) * | 2010-10-19 | 2012-05-16 | 上海聚力传媒技术有限公司 | 一种基于内存池来进行数据共享的方法和计算机设备 |
CN103425538A (zh) * | 2012-05-24 | 2013-12-04 | 深圳市腾讯计算机系统有限公司 | 进程通讯方法及系统 |
CN103605577A (zh) * | 2013-12-04 | 2014-02-26 | 广州博冠信息科技有限公司 | 跨进程的资源共享方法和设备 |
-
2014
- 2014-04-14 CN CN201410148478.9A patent/CN104978278B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1740978A (zh) * | 2004-08-23 | 2006-03-01 | 华为技术有限公司 | 实现共享内存数据库的方法及内存数据库系统 |
CN101329657A (zh) * | 2007-06-19 | 2008-12-24 | 瑞达信息安全产业股份有限公司 | 一种用于多应用间的安全共享动态内存系统和方法 |
CN101650670A (zh) * | 2008-08-14 | 2010-02-17 | 鸿富锦精密工业(深圳)有限公司 | 可共享应用程序配置参数的电子系统及其方法 |
CN102455943A (zh) * | 2010-10-19 | 2012-05-16 | 上海聚力传媒技术有限公司 | 一种基于内存池来进行数据共享的方法和计算机设备 |
CN102006241A (zh) * | 2010-12-17 | 2011-04-06 | 天津曙光计算机产业有限公司 | 一种多个应用共享一个缓冲区的报文接收方法 |
CN103425538A (zh) * | 2012-05-24 | 2013-12-04 | 深圳市腾讯计算机系统有限公司 | 进程通讯方法及系统 |
CN103605577A (zh) * | 2013-12-04 | 2014-02-26 | 广州博冠信息科技有限公司 | 跨进程的资源共享方法和设备 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107463395A (zh) * | 2016-06-03 | 2017-12-12 | 腾讯科技(深圳)有限公司 | 组件调用方法及装置 |
CN106657284A (zh) * | 2016-11-29 | 2017-05-10 | 成都华为技术有限公司 | 数据流处理的方法和装置 |
CN108228876A (zh) * | 2018-01-19 | 2018-06-29 | 维沃移动通信有限公司 | 一种读取文件数据的方法及移动终端 |
CN108334383A (zh) * | 2018-03-30 | 2018-07-27 | 联想(北京)有限公司 | 一种信息处理方法及电子设备 |
CN108334383B (zh) * | 2018-03-30 | 2021-09-14 | 联想(北京)有限公司 | 一种信息处理方法及电子设备 |
WO2019223667A1 (zh) * | 2018-05-24 | 2019-11-28 | 华为技术有限公司 | 一种用于终端的信息查询方法及终端 |
US11650993B2 (en) | 2018-05-24 | 2023-05-16 | Huawei Technologies Co., Ltd. | Information query method for terminal and terminal |
Also Published As
Publication number | Publication date |
---|---|
CN104978278B (zh) | 2020-05-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104978278A (zh) | 数据处理方法和装置 | |
CN107870728B (zh) | 用于移动数据的方法和设备 | |
CN108427705A (zh) | 电子装置、分布式系统日志查询方法及存储介质 | |
CN103607428B (zh) | 一种访问共享内存的方法和装置 | |
US10108540B2 (en) | Allocation of distributed data structures | |
US20150350916A1 (en) | Profile Integration Management | |
CN105867947A (zh) | 预置应用程序升级后的数据处理方法及装置 | |
CN107066295B (zh) | 一种基于浏览器加载终端网络应用的插件的方法及设备 | |
CN105335187A (zh) | 一种应用的处理方法及装置 | |
CN106598692A (zh) | 在逻辑卷中创建镜像文件、虚拟机启动方法及服务器 | |
CN105138481B (zh) | 存储数据的处理方法、装置和系统 | |
CN104268012A (zh) | 一种图片数据处理方法及装置 | |
CN104572845A (zh) | 文件分发方法、装置、设备及系统 | |
CN111124464A (zh) | 一种用于嵌入式系统的差分升级的方法、系统及计算机可读存储介质 | |
CN104346345A (zh) | 数据的存储方法及装置 | |
WO2017166791A1 (zh) | 应用程序备份方法及装置 | |
CN113065887A (zh) | 资源处理方法、装置、计算机设备和存储介质 | |
CN104407990A (zh) | 一种磁盘访问方法及装置 | |
CN107092494B (zh) | 访问apk资源的方法和装置 | |
CN111309471B (zh) | 数据处理方法、装置及分布式系统 | |
WO2017035813A1 (zh) | 一种数据访问方法、装置及系统 | |
CN103514052A (zh) | 一种多应用之间互访的方法和智能卡 | |
CN104182181A (zh) | 一种存储卡的数据处理方法、装置及终端 | |
CN112685203B (zh) | 操作获取方法和装置、存储介质及电子设备 | |
CN103607444B (zh) | 应用程序中Zip压缩包的下载处理方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20191209 Address after: P.O. Box 31119, grand exhibition hall, hibiscus street, 802 West Bay Road, Grand Cayman, Cayman Islands Applicant after: Innovative advanced technology Co., Ltd Address before: A four-storey 847 mailbox in Grand Cayman Capital Building, British Cayman Islands Applicant before: Alibaba Group Holding Co., Ltd. |
|
TA01 | Transfer of patent application right | ||
GR01 | Patent grant | ||
GR01 | Patent grant |