掌桥专利:专业的专利平台
掌桥专利
首页

对象处理方法及装置

文献发布时间:2023-06-19 09:32:16


对象处理方法及装置

技术领域

本说明书涉及数据处理技术领域,特别涉及一种对象处理方法。本说明书同时涉及一种对象处理装置,一种计算设备,以及一种计算机可读存储介质。

背景技术

随着计算机技术和游戏技术的快速发展,游戏玩法越来越多样化,玩家可以随机选取游戏场景中的对象,对其进行交互操作,例如随机选取书桌,走到书桌旁进行写字。也就是说,存储空间中预先存储有所有对象的数据,检测到玩家选择某个对象后,可以从存储空间中获取该对象的数据,根据玩家的交互操作,对该对象的数据进行处理,完成该交互操作。

现有技术中,往往是将对象的数据不规律的存放在存储空间中,或者采用快速排序等通用排序算法,先对对象的数据进行排序,然后再将对象的数据规律存放在存储空间中。

然而,如果对象的数据在存储空间中不规律存放,则每次选取对象进行交互操作,均需要遍历存储空间中存储的所有对象,才能找到要进行操作的对象,性能消耗极大;如果采用快速排序等通用排序算法对对象的数据进行排序,存在N个对象,则每次排序的复杂度至少为N*LogN,每次对象发生变化,都需要重新排序,排序算法复杂,在对象较多时,时间和性能均消耗极大,进而需要更简单更便捷的方法进行对象处理的操作。

发明内容

有鉴于此,本说明书实施例提供了一种对象处理方法。本说明书同时涉及一种对象处理装置,一种计算设备,以及一种计算机可读存储介质,以解决现有技术中存在的技术缺陷。

根据本说明书实施例的第一方面,提供了一种对象处理方法,包括:

遍历待处理对象,确定所述待处理对象所属的至少一种对象类型;

为所述至少一种对象类型配置在目标存储空间的起始地址;

在所述目标存储空间中,以所述起始地址为起点,顺序存储所述起始地址对应的对象类型包括的待处理对象的数据。

可选的,所述为所述至少一种对象类型配置在目标存储空间的起始地址,包括:

统计所述至少一种对象类型包括的待处理对象数量;

根据所述待处理对象数量,为所述至少一种对象类型配置在目标存储空间的起始地址。

可选的,所述根据所述对象数量,为所述至少一种对象类型配置在目标存储空间的起始地址,包括:

确定所述至少一种对象类型的排列顺序;

根据所述排列顺序和所述待处理对象数量,为所述至少一种对象类型配置在目标存储空间的起始地址。

可选的,所述方法还包括:

为所述待处理对象分配连续的存储空间,将所述连续的存储空间确定为所述目标存储空间。

可选的,所述在所述目标存储空间中,以所述起始地址为起点,顺序存储所述起始地址对应的对象类型包括的待处理对象的数据之后,还包括:

记录所述待处理对象在所属对象类型下的偏移量。

可选的,所述确定所述待处理对象在所属对象类型下的偏移量之后,还包括:

在接收到访问请求的情况下,确定所述访问请求对应的目标对象;

确定所述目标对象所属的目标对象类型;

确定所述目标对象在所属的目标对象类型下的偏移量;

根据所述偏移量,获取所述目标对象的数据。

根据本说明书实施例的第二方面,提供了一种对象处理装置,包括:

对象类型确定模块,被配置为遍历待处理对象,确定所述待处理对象所属的至少一种对象类型;

起始地址配置模块,被配置为为所述至少一种对象类型配置在目标存储空间的起始地址;

存储模块,被配置为在所述目标存储空间中,以所述起始地址为起点,顺序存储所述起始地址对应的对象类型包括的待处理对象的数据。

可选的,所述起始地址配置模块进一步被配置为:

统计所述至少一种对象类型包括的待处理对象数量;

根据所述待处理对象数量,为所述至少一种对象类型配置在目标存储空间的起始地址。

可选的,所述起始地址配置模块进一步被配置为:

确定所述至少一种对象类型的排列顺序;

根据所述排列顺序和所述待处理对象数量,为所述至少一种对象类型配置在目标存储空间的起始地址。

可选的,所述装置还包括:

目标存储空间确定模块,被配置为为所述待处理对象分配连续的存储空间,将所述连续的存储空间确定为所述目标存储空间。

可选的,所述装置还包括:

偏移量记录模块,被配置为记录所述待处理对象在所属对象类型下的偏移量。

可选的,所述装置还包括:

目标对象确定模块,被配置为在接收到访问请求的情况下,确定所述访问请求对应的目标对象;

目标对象类型确定模块,被配置为确定所述目标对象所属的目标对象类型;

偏移量确定模块,被配置为确定所述目标对象在所属的目标对象类型下的偏移量;

数据获取模块,被配置为根据所述偏移量,获取所述目标对象的数据。

根据本说明书实施例的第三方面,提供了一种计算设备,包括:

存储器和处理器;

所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令:

遍历待处理对象,确定所述待处理对象所属的至少一种对象类型;

为所述至少一种对象类型配置在目标存储空间的起始地址;

在所述目标存储空间中,以所述起始地址为起点,顺序存储所述起始地址对应的对象类型包括的待处理对象的数据。

根据本说明书实施例的第四方面,提供了一种计算机可读存储介质,其存储有计算机可执行指令,该指令被处理器执行时实现任意所述对象处理方法的步骤。

本说明书提供的对象处理方法,先遍历待处理对象,确定所述待处理对象所属的至少一种对象类型,然后为所述至少一种对象类型配置在目标存储空间的起始地址,之后在所述目标存储空间中,以所述起始地址为起点,顺序存储所述起始地址对应的对象类型包括的待处理对象的数据。这种情况下,可以按照对象类型对待处理对象进行排序,使得待处理对象的数据在目标存储空间中规律存储,后续进行数据访问时,可以直接找到需要的待处理对象的数据,不需要遍历每个数据,极大节省了性能消耗。并且,确定所述待处理对象所属的至少一种对象类型,需要遍历一遍待处理对象,为所述至少一种对象类型配置在目标存储空间的起始地址,需要遍历一遍对象类型,顺序存储所述起始地址对应的对象类型包括的待处理对象的数据(即存储所有的待处理对象),需要再遍历一遍待处理对象;也即是,整个排序过程只需要遍历两遍待处理对象,一遍对象类型即可,假设共有N个待处理对象,有M个对象类型,则排序的复杂度为2*N+M,当N较大时,会极大降低排序的复杂度,从而极大节省排序耗时和性能消耗。

附图说明

图1是本说明书一实施例提供的一种对象处理方法的流程图;

图2是本说明书一实施例提供的另一种对象处理方法的流程图;

图3是本说明书一实施例提供的一种对象处理装置的结构示意图;

图4是本说明书一实施例提供的一种计算设备的结构框图。

具体实施方式

在下面的描述中阐述了很多具体细节以便于充分理解本说明书。但是本说明书能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本说明书内涵的情况下做类似推广,因此本说明书不受下面公开的具体实施的限制。

在本说明书一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本说明书一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本说明书一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

首先,对本说明书一个或多个实施例涉及的名词术语进行解释。

缓存命中:客户端用户访问存储空间时,如果该存储空间缓存了要被访问的数据时就叫做命中,如果没有的话需要回原服务器取,就是没有命中。取数据的过程与用户访问是同步进行的,所以即使是重新取的新数据,用户也不会感觉到有延时。

其次,对本说明书提供的对象处理方法的基本构思进行简介。

存储空间中需要预先存储有所有对象的数据,检测到玩家选择某个对象后,可以从存储空间中获取该对象的数据,根据玩家的交互操作,对该对象的数据进行处理,完成该交互操作。

目前,一般是每一类数据一个vector类存放,由于vector类的存储空间不是一起分配的,没有办法保证存储空间的内存是连续的,也即没有办法保证所有对象的数据是连续存储的,不利于对象的数据的统一管理和缓存命中。

其次,如果对象的数据在内存空间中不规律存放,则每次选取对象进行交互操作,均需要遍历内存空间中存储的所有对象,才能找到要进行操作的对象,性能消耗极大;如果采用快速排序等通用排序算法对对象的数据进行排序,存在N个对象,则每次排序的复杂度至少为N*LogN,每次对象发生变化,都需要重新排序,排序算法复杂,在对象较多时,时间和性能均消耗极大,进而需要更简单更便捷的方法进行对象处理的操作。

本说明书提供了一种对象处理方法,先遍历待处理对象,确定所述待处理对象所属的至少一种对象类型,然后为所述至少一种对象类型配置在目标存储空间的起始地址,之后在所述目标存储空间中,以所述起始地址为起点,顺序存储所述起始地址对应的对象类型包括的待处理对象的数据。这种情况下,可以按照对象类型对待处理对象进行排序,使得待处理对象的数据在目标存储空间中规律存储。并且,确定所述待处理对象所属的至少一种对象类型,需要遍历一遍待处理对象,为所述至少一种对象类型配置在目标存储空间的起始地址,需要遍历一遍对象类型,顺序存储所述起始地址对应的对象类型包括的待处理对象的数据(即存储所有的待处理对象),需要再遍历一遍待处理对象;也即是,整个排序过程只需要遍历两遍待处理对象,一遍对象类型即可,假设共有N个待处理对象,有M个对象类型,则排序的复杂度为2*N+M。对排序过程进行了优化,当待处理对象N很大时,现有的排序和本说明书提供的排序过程,耗时不是一个量级,当N很小时,虽然差别不大,但是由于N很小,性能和时间消耗本来就不大。

在本说明书中,提供了一种对象处理方法,本说明书同时涉及一种对象处理装置,一种计算设备,以及一种计算机可读存储介质,在下面的实施例中逐一进行详细说明。

图1示出了根据本说明书一实施例提供的一种对象处理方法的流程图,具体包括以下步骤:

步骤102:遍历待处理对象,确定所述待处理对象所属的至少一种对象类型。

在本实施例的一个或多个实施方式中,在开始对所有的待处理对象进行分类排序之前,即遍历待处理对象,确定所述待处理对象所属的至少一种对象类型之前,还需要为待处理对象分配存储空间,具体实现过程可以为:

为所述待处理对象分配连续的存储空间,将所述连续的存储空间确定为目标存储空间。

本说明书中为待处理对象分配的是连续的存储空间,后续所有的待处理对象可以存储在该连续的存储空间中,方便管理,且提高了缓存命中率。

步骤104:为所述至少一种对象类型配置在目标存储空间的起始地址。

具体的,在遍历待处理对象,确定所述待处理对象所属的至少一种对象类型的基础上,进一步的,将为所述至少一种对象类型配置在目标存储空间的起始地址。

在本实施例的一个或多个实施方式中,可以通过每个对象类型包括的待处理对象数量,为每个对象类型分配起始地址,具体实现过程可以为:

统计所述至少一种对象类型包括的待处理对象数量;

根据所述待处理对象数量,为所述至少一种对象类型配置在目标存储空间的起始地址。

在本实施例的一个或多个实施方式中,需要先确定至少一种对象类型的排列顺序,才能为每个对象类型分配起始地址,具体实现过程可以为:

确定所述至少一种对象类型的排列顺序;

根据所述排列顺序和所述待处理对象数量,为所述至少一种对象类型配置在目标存储空间的起始地址。

本说明书中为每个对象类型配置其在目标存储空间的起始地址,即每个对象类型均有固定的一段地址,用于存储该对象类型包括的各个待处理对象,使得各个待处理对象可以分类存储,方便后续进行数据访问。

步骤106:在所述目标存储空间中,以所述起始地址为起点,顺序存储所述起始地址对应的对象类型包括的待处理对象的数据。

具体的,在为所述至少一种对象类型配置在目标存储空间的起始地址的基础上,进一步的,将在所述目标存储空间中,以所述起始地址为起点,顺序存储所述起始地址对应的对象类型包括的待处理对象的数据。

在本实施例的一个或多个实施方式中,所有待处理对象的数据存储完毕后,为了方便后续的数据访问,还可以记录所述待处理对象在所属对象类型下的偏移量。

在本实施例的一个或多个实施方式中,若接收到访问请求,则可以直接获取访问请求对应的目标对象的数据,具体实现过程可以为:

在接收到访问请求的情况下,确定所述访问请求对应的目标对象;

确定所述目标对象所属的目标对象类型;

确定所述目标对象在所属的目标对象类型下的偏移量;

根据所述偏移量,获取所述目标对象的数据。

本说明书提供的对象处理方法,先遍历待处理对象,确定所述待处理对象所属的至少一种对象类型,然后为所述至少一种对象类型配置在目标存储空间的起始地址,之后在所述目标存储空间中,以所述起始地址为起点,顺序存储所述起始地址对应的对象类型包括的待处理对象的数据。这种情况下,可以按照对象类型对待处理对象进行排序,使得待处理对象的数据在目标存储空间中规律存储,后续进行数据访问时,可以直接找到需要的待处理对象的数据,不需要遍历每个数据,极大节省了性能消耗。并且,确定所述待处理对象所属的至少一种对象类型,需要遍历一遍待处理对象,为所述至少一种对象类型配置在目标存储空间的起始地址,需要遍历一遍对象类型,顺序存储所述起始地址对应的对象类型包括的待处理对象的数据(即存储所有的待处理对象),需要再遍历一遍待处理对象;也即是,整个排序过程只需要遍历两遍待处理对象,一遍对象类型即可,假设共有N个待处理对象,有M个对象类型,则排序的复杂度为2*N+M,当N较大时,会极大降低排序的复杂度,从而极大节省排序耗时和性能消耗。

下述结合附图2,对上述图1所述的对象处理方法进行进一步说明。其中,图2示出了本说明书一实施例提供的另一种对象处理方法的流程图,具体包括以下步骤:

步骤202:为待处理对象分配连续的存储空间,将所述连续的存储空间确定为目标存储空间。

具体的,待处理对象的个数为一个或多个,待处理对象是指游戏场景中的道具,如椅子、桌子、床、毛笔、书本、颜料、帽子、衣服、花、草、树木等;另外,此处的待处理对象可以是一个游戏所有地图场景包括的全部对象,也可以是一个游戏中某个地图场景包括的对象,也即是,可以对一个游戏所有地图场景包括的全部对象进行统一处理(排序存储),也可以对一个游戏的多个地图场景包括的对象分场景进行处理(排序存储)。连续的存储空间可以为一段连续的内存。目标存储空间是指后续用于存储所有待处理对象的存储空间。

实际应用中,存储空间中需要预先存储有所有对象的数据,从而后续检测到玩家选择某个对象后,可以从存储空间中获取该对象的数据,根据玩家的交互操作,对该对象的数据进行处理,完成该交互操作。也就是说,在待处理对象创建后,需要将创建的待处理对象进行存储,因而需要为待处理对象分配连续的存储空间。

本说明书中为待处理对象分配的是连续的存储空间,后续所有的待处理对象可以存储在该连续的存储空间中,方便管理,且提高了缓存命中率。

实际实现过程中,由于所有的待处理对象要连续的存储在存储空间中,因而只需要在第一次创建待处理对象(游戏初始化生成场景道具)时,为待处理对象分配一个连续的存储空间即可,后续游戏运行过程中,新增的待处理对象,都可以存储在之前分配的存储空间中。也就是说,步骤202可以只在第一次创建待处理对象(游戏初始化第一次生成场景道具)时执行,后续新增待处理对象时,可以不执行步骤202,直接执行下述步骤204-步骤208的排序步骤。

步骤204:遍历待处理对象,确定所述待处理对象所属的至少一种对象类型。

具体的,可以在为待处理对象分配连续的存储空间,将所述连续的存储空间确定为目标存储空间的基础上,进一步的,遍历待处理对象,确定所述待处理对象所属的至少一种对象类型;还可以直接遍历待处理对象,确定所述待处理对象所属的至少一种对象类型。

实际应用中,遍历所有的待处理对象,确定每个待处理对象所属的对象类型,也就是说,待处理对象所属的对象类型为至少一种,对象类型可以为家具、文具、服饰、植物等,例如,待处理对象为椅子、桌子、床、毛笔、书本、颜料、帽子、衣服、花、草、树木,遍历每个待处理对象,确定椅子、桌子、床所属的对象类型为家具,毛笔、书本、颜料所属的对象类型为文具,帽子、衣服所属的对象类型为服饰,花、草、树木所属的对象类型为植物。

需要说明的是,每创建一个新的待处理对象的情况下,都需要对所有的待处理对象进行重新排序,因而在检测到创建新的待处理对象的情况下,可以遍历所有的待处理对象,确定每个所述待处理对象所属的至少一种对象类型,方便后续对所有的待处理对象进行排序并存储。另外,若删除某个待处理对象,可以不对剩余的待处理对象进行重新排序,即剩余的待处理对象的数据依旧存储于之前的存储位置;删除某个待处理对象后,为了保证剩余的待处理对象连续存储,也可以对剩余的待处理对象进行重新排序,重新确定剩余的每个待处理对象的数据的存储位置,也就是说,在检测到待处理对象发生动态变化(增删)的情况下,可以遍历所有的待处理对象,确定每个所述待处理对象所属的至少一种对象类型,方便后续对所有的待处理对象进行排序并存储。

步骤206:为所述至少一种对象类型配置在目标存储空间的起始地址。

具体的,在遍历待处理对象,确定所述待处理对象所属的至少一种对象类型的基础上,进一步的,将为所述至少一种对象类型配置在目标存储空间的起始地址。

实际应用中,起始地址就是在目标存储空间中开始存储所述对象类型对应的待处理对象的数据的地址。在确定出所有待处理对象所属的至少一种对象类型之后,需要确定出每种对象类型在目标存储空间的起始地址,从而方便后续对每种对象类型包括的待处理对象进行存储,即分类型存储待处理对象。

在本实施例的一个或多个实施方式中,可以通过每个对象类型包括的待处理对象的数量,以及各个对象类型的排列顺序,来配置所述至少一种对象类型在目标存储空间的起始地址,具体实现过程可以为:

统计所述至少一种对象类型包括的待处理对象数量;

确定所述至少一种对象类型的排列顺序;

根据所述排列顺序和所述待处理对象数量,为所述至少一种对象类型配置在目标存储空间的起始地址。

实际应用中,统计每个对象类型包括的待处理对象数量后,还需要确定各个对象类型的排列顺序,按照各个对象类型的排列顺序,以及每个对象类型包括的待处理对象数量,依次分配各个对象类型在目标存储空间的起始地址。

例如,待处理对象为椅子、桌子、床、毛笔、书本、颜料、帽子、衣服、花、草、树木,家具包括椅子、桌子、床,文具包括毛笔、书本、颜料,服饰包括帽子、衣服,植物包括花、草、树木,也即是,家具包括三个待处理对象,文具包括三个待处理对象,服饰包括两个待处理对象,植物包括三个待处理对象。假设确定家具排在最前面,文具、服饰、植物分别按顺序排在家具后面,此时为家具配置的在目标存储空间的起始地址为00,为文具配置的在目标存储空间的起始地址为03,为服饰配置的在目标存储空间的起始地址为06,为植物配置的在目标存储空间的起始地址为08。

本说明书中为每个对象类型配置其在目标存储空间的起始地址,即每个对象类型均有固定的一段地址,用于存储该对象类型包括的各个待处理对象,使得各个待处理对象可以分类存储,方便后续进行数据访问。

步骤208:在所述目标存储空间中,以所述起始地址为起点,顺序存储所述起始地址对应的对象类型包括的待处理对象的数据。

具体的,在为所述至少一种对象类型配置在目标存储空间的起始地址的基础上,进一步的,将以所述起始地址为起点,顺序存储所述起始地址对应的对象类型包括的待处理对象的数据。

例如,假设家具在目标存储空间中的起始地址为00、文具在目标存储空间中的起始地址为03、服饰在目标存储空间中的起始地址为06、植物在目标存储空间中的起始地址为08,则在目标存储空间中,以00为起点,顺序存储家具包括的椅子、桌子、床;以03为起点,顺序存储文具包括的毛笔、书本、颜料;以06为起点,顺序存储服饰包括的帽子、衣服;以08为起点,顺序存储植物包括的花、草、树木。

实际实现过程中,经过执行上述步骤204-208的操作步骤,可以按照对象类型对所有待处理对象进行排序,使得所有待处理对象的数据在目标存储空间中规律存储,后续进行数据访问时,可以直接找到需要的待处理对象的数据,不需要遍历每个数据,极大节省了性能消耗。另外,步骤204中确定所述待处理对象所属的至少一种对象类型,需要遍历一遍所有的待处理对象,步骤206中为所述至少一种对象类型配置在目标存储空间的起始地址,需要遍历一遍所有的对象类型,步骤208中顺序存储所述起始地址对应的对象类型包括的待处理对象的数据(即存储所有的待处理对象),需要再遍历一遍所有的待处理对象;也即是,整个排序过程只需要遍历两遍待处理对象,一遍对象类型即可,假设共有N个待处理对象,有M个对象类型,则排序的复杂度为2*N+M,当N较大时,会极大降低排序的复杂度,从而极大节省排序耗时和性能消耗。

步骤210:记录所述待处理对象在所属对象类型下的偏移量。

具体的,在所述目标存储空间中,以所述起始地址为起点,顺序存储所述起始地址对应的对象类型包括的待处理对象的数据的基础上,进一步的,将记录所述待处理对象在所属对象类型下的偏移量。

实际应用中,偏移量用于表示所述待处理对象的数据在所属对象类型下的存储位置,即所述待处理对象的数据位于所属对象类型下的第几个位置。在所述目标存储空间中,以所述起始地址为起点,顺序存储所述起始地址对应的对象类型包括的待处理对象的数据之后,每个待处理对象所处的位置就确定了,此时可以记录该位置,在后续需要访问该待处理对象的情况下,可以快速找到该待处理对象的数据所在的位置,获取数据进行操作。

例如,在目标存储空间中,以00为起点,顺序存储家具包括的椅子、桌子、床;以03为起点,顺序存储文具包括的毛笔、书本、颜料;以06为起点,顺序存储服饰包括的帽子、衣服;以08为起点,顺序存储植物包括的花、草、树木。存储完毕后,记录椅子在家具下的偏移量为1,桌子在家具下的偏移量为2,床在家具下的偏移量为3;毛笔在文具下的偏移量为1,书本在文具下的偏移量为2,颜料在文具下的偏移量为3;帽子在服饰下的偏移量为1,衣服在服饰下的偏移量为2;花在植物下的偏移量为1,草在植物下的偏移量为2,树木在植物下的偏移量为3。

步骤212:在接收到访问请求的情况下,确定所述访问请求对应的目标对象;确定所述目标对象所属的目标对象类型;确定所述目标对象在所属的目标对象类型下的偏移量;根据所述偏移量,获取所述目标对象的数据。

具体的,在记录所述待处理对象在所属对象类型下的偏移量,进一步的,在接收到访问请求的情况下,将确定所述访问请求对应的目标对象,确定所述目标对象所属的目标对象类型,确定所述目标对象在所属的目标对象类型下的偏移量,然后根据所述偏移量,获取所述目标对象的数据。

实际应用中,访问请求可以是玩家选择某个待处理对象时触发的请求,所述访问请求中携带玩家选定的待处理对象的对象标识,在接收到访问请求的情况下,可以根据访问请求中携带的对象标识,确定出玩家要操作的目标对象。之后,可以再进一步确定出目标对象所属的目标对象类型,以及在所属的目标对象类型下的偏移量,就可以直接找到该目标对象的数据存储的位置,进而获取所述目标对象的数据。

例如,椅子在家具下的偏移量为1,桌子在家具下的偏移量为2,床在家具下的偏移量为3;毛笔在文具下的偏移量为1,书本在文具下的偏移量为2,颜料在文具下的偏移量为3;帽子在服饰下的偏移量为1,衣服在服饰下的偏移量为2;花在植物下的偏移量为1,草在植物下的偏移量为2,树木在植物下的偏移量为3。假设玩家要移动床的位置,此时会接收到访问请求,该访问请求中携带床的标识,根据访问请求,确定目标对象为床,并确定床属于家具,且床在家具下的偏移量为3,此时可以直接根据家具、偏移量3获取到床的数据,进行交互操作。

实际实现过程中,由于所有的待处理对象都按照对象类型有规律的存储在目标存储空间中,因而在接收到访问请求的情况下,可以根据对象类型及在所属对象类型下的偏移量,直接获取到目标对象的数据,不需要遍历每个待处理对象的数据,极大节省了性能消耗和时间消耗。

本说明书提供的对象处理方法,先遍历待处理对象,确定所述待处理对象所属的至少一种对象类型,然后为所述至少一种对象类型配置在目标存储空间的起始地址,之后在所述目标存储空间中,以所述起始地址为起点,顺序存储所述起始地址对应的对象类型包括的待处理对象的数据。这种情况下,由于目标存储空间是连续的,因而所有的待处理对象是连续存储的,方便管理,且提高了缓存命中率。其次,是按照对象类型对待处理对象进行排序,使得待处理对象的数据在目标存储空间中规律存储,后续进行数据访问时,可以直接找到需要的待处理对象的数据,不需要遍历每个数据,极大节省了性能消耗。另外,确定所述待处理对象所属的至少一种对象类型,需要遍历一遍待处理对象,为所述至少一种对象类型配置在目标存储空间的起始地址,需要遍历一遍对象类型,顺序存储所述起始地址对应的对象类型包括的待处理对象的数据(即存储所有的待处理对象),需要再遍历一遍待处理对象;也即是,整个排序过程只需要遍历两遍待处理对象,一遍对象类型即可,假设共有N个待处理对象,有M个对象类型,则排序的复杂度为2*N+M,当N较大时,会极大降低排序的复杂度,从而极大节省排序耗时和性能消耗。

与上述方法实施例相对应,本说明书还提供了对象处理装置实施例,图3示出了本说明书一实施例提供的一种对象处理装置的结构示意图。如图3所示,该装置包括:

对象类型确定模块302,被配置为遍历待处理对象,确定所述待处理对象所属的至少一种对象类型;

起始地址配置模块304,被配置为为所述至少一种对象类型配置在目标存储空间的起始地址;

存储模块306,被配置为在所述目标存储空间中,以所述起始地址为起点,顺序存储所述起始地址对应的对象类型包括的待处理对象的数据。

在本实施例的一个或多个实施方式中,所述起始地址配置模块304进一步被配置为:

统计所述至少一种对象类型包括的待处理对象数量;

根据所述待处理对象数量,为所述至少一种对象类型配置在目标存储空间的起始地址。

在本实施例的一个或多个实施方式中,所述起始地址配置模块304进一步被配置为:

确定所述至少一种对象类型的排列顺序;

根据所述排列顺序和所述待处理对象数量,为所述至少一种对象类型配置在目标存储空间的起始地址。

在本实施例的一个或多个实施方式中,所述装置还包括:

目标存储空间确定模块,被配置为为所述待处理对象分配连续的存储空间,将所述连续的存储空间确定为所述目标存储空间。

在本实施例的一个或多个实施方式中,所述装置还包括:

偏移量记录模块,被配置为记录所述待处理对象在所属对象类型下的偏移量。

在本实施例的一个或多个实施方式中,所述装置还包括:

目标对象确定模块,被配置为在接收到访问请求的情况下,确定所述访问请求对应的目标对象;

目标对象类型确定模块,被配置为确定所述目标对象所属的目标对象类型;

偏移量确定模块,被配置为确定所述目标对象在所属的目标对象类型下的偏移量;

数据获取模块,被配置为根据所述偏移量,获取所述目标对象的数据。

本说明书提供的对象处理装置,对象类型确定模块被配置为遍历待处理对象,确定所述待处理对象所属的至少一种对象类型;起始地址配置模块被配置为为所述至少一种对象类型配置在目标存储空间的起始地址;存储模块被配置为在所述目标存储空间中,以所述起始地址为起点,顺序存储所述起始地址对应的对象类型包括的待处理对象的数据。这种情况下,由于目标存储空间是连续的,因而所有的待处理对象是连续存储的,方便管理,且提高了缓存命中率。其次,是按照对象类型对待处理对象进行排序,使得待处理对象的数据在目标存储空间中规律存储,后续进行数据访问时,可以直接找到需要的待处理对象的数据,不需要遍历每个数据,极大节省了性能消耗。另外,确定所述待处理对象所属的至少一种对象类型,需要遍历一遍待处理对象,为所述至少一种对象类型配置在目标存储空间的起始地址,需要遍历一遍对象类型,顺序存储所述起始地址对应的对象类型包括的待处理对象的数据(即存储所有的待处理对象),需要再遍历一遍待处理对象;也即是,整个排序过程只需要遍历两遍待处理对象,一遍对象类型即可,假设共有N个待处理对象,有M个对象类型,则排序的复杂度为2*N+M,当N较大时,会极大降低排序的复杂度,从而极大节省排序耗时和性能消耗。

上述为本实施例的一种对象处理装置的示意性方案。需要说明的是,该对象处理装置的技术方案与上述的对象处理方法的技术方案属于同一构思,对象处理装置的技术方案未详细描述的细节内容,均可以参见上述对象处理方法的技术方案的描述。

图4示出了根据本说明书一实施例提供的一种计算设备400的结构框图。该计算设备400的部件包括但不限于存储器410和处理器420。处理器420与存储器410通过总线430相连接,数据库450用于保存数据。

计算设备400还包括接入设备440,接入设备440使得计算设备400能够经由一个或多个网络460通信。这些网络的示例包括公用交换电话网(PSTN)、局域网(LAN)、广域网(WAN)、个域网(PAN)或诸如因特网的通信网络的组合。接入设备440可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(NIC))中的一个或多个,诸如IEEE802.11无线局域网(WLAN)无线接口、全球微波互联接入(Wi-MAX)接口、以太网接口、通用串行总线(USB)接口、蜂窝网络接口、蓝牙接口、近场通信(NFC)接口,等等。

在本说明书的一个实施例中,计算设备400的上述部件以及图4中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图4所示的计算设备结构框图仅仅是出于示例的目的,而不是对本说明书范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。

计算设备400可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或PC的静止计算设备。计算设备400还可以是移动式或静止式的服务器。

其中,处理器420用于执行如下计算机可执行指令:

遍历待处理对象,确定所述待处理对象所属的至少一种对象类型;

为所述至少一种对象类型配置在目标存储空间的起始地址;

在所述目标存储空间中,以所述起始地址为起点,顺序存储所述起始地址对应的对象类型包括的待处理对象的数据。

上述为本实施例的一种计算设备的示意性方案。需要说明的是,该计算设备的技术方案与上述的对象处理方法的技术方案属于同一构思,计算设备的技术方案未详细描述的细节内容,均可以参见上述对象处理方法的技术方案的描述。

本说明书一实施例还提供一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时以用于:

遍历待处理对象,确定所述待处理对象所属的至少一种对象类型;

为所述至少一种对象类型配置在目标存储空间的起始地址;

在所述目标存储空间中,以所述起始地址为起点,顺序存储所述起始地址对应的对象类型包括的待处理对象的数据。

上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的对象处理方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述对象处理方法的技术方案的描述。

上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。

所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。

需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本说明书并不受所描述的动作顺序的限制,因为依据本说明书,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本说明书所必须的。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。

以上公开的本说明书优选实施例只是用于帮助阐述本说明书。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本说明书的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本说明书。本说明书仅受权利要求书及其全部范围和等效物的限制。

相关技术
  • 液体处理方法、对象物处理方法、液体处理装置、对象物处理装置及等离子体处理液
  • 对象识别码处理方法、对象发布方法、装置、设备及介质
技术分类

06120112206563