CN111737166A - 数据对象的处理方法、装置及设备 - Google Patents
数据对象的处理方法、装置及设备 Download PDFInfo
- Publication number
- CN111737166A CN111737166A CN202010410156.2A CN202010410156A CN111737166A CN 111737166 A CN111737166 A CN 111737166A CN 202010410156 A CN202010410156 A CN 202010410156A CN 111737166 A CN111737166 A CN 111737166A
- Authority
- CN
- China
- Prior art keywords
- member variable
- variables
- variable set
- target
- type
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0811—Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0862—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Devices For Executing Special Programs (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种数据对象的处理方法、装置及设备,涉及计算机存储技术领域,通过改变数据对象的处理方式,从而有效利用多级缓存和多核技术对数据对象进行操作,提高数据操作效率。其中方法包括:按照类型将对象中的成员变量分别存储在连续的内存空间上,得到成员变量集合,所述成员变量集合中的成员变量具有相同的类型;当触发对目标成员变量进行处理的操作指令时,利用所述目标成员变量所定义的类型遍历查询成员变量集合,获取与所述目标成员变量具有相同类型的成员变量集合;通过执行所述操作指令,对所述与所述目标成员变量具有相同类型的成员变量集合中的成员变量进行处理。
Description
技术领域
本申请涉及计算机存储技术领域,尤其是涉及到一种数据对象的处理方法、装置及设备。
背景技术
随着游戏产业的迅猛发展,作为游戏核心的游戏引擎,为了实现游戏中各种各样的玩法和效果,必须提供种类繁多的功能和管理众多的数据。通常情况下,游戏引擎会使用游戏对象来管理这些数据,并将与某个功能相关的数据都归纳为某一个类,由该类提供获取和操作数据接口,再根据该类创建众多的对象负责管理众多的数据。
在游戏引擎管理数据的过程中,对象将在游戏运行时经过被创建、使用或销毁这三个阶段,其中,创建阶段主要涉及内存的分配、对象在内存上的初始化;使用阶段主要涉及对象中数据的使用;销毁阶段主要涉及对象的析构、内存的回收。内存的分配与回收,是创建和销毁阶段的关键问题,对象内存中数据的使用是使用阶段的关键问题。现有技术中,对象内存的分配在保持类中相关数据的逻辑整体性的前提下,可以将一个对象中相关的数据在内存上组织在一起,形成多个对象在内存中分散存储的类,并且每个对象中包含多个数据对象,进而在后续内存中数据的使用过程中,利用多级缓存和多核技术对内存中数据进行运算。
多级缓存和多核技术已成为现代计算机的标准配置,在手机上也被广泛使用。其中,多级缓存可以预先加载内存上相邻的数据对象,对于数据在内存上连续存放的场景,有非常大的加速效果。而现有技术中由于每一种数据对象在内存中分散存储,使得在对对象中数据进行嵌套查找的过程中,多级缓存技术预先加载的数据并不能得到充分利用,例如,遍历对象A的x数据对象时,x在内存上被其他数据对象分隔开,造成多级缓存技术加载了多余的数据对象,很难起到加速的效果,使得数据操作效率较低;多核技术可以在程序有意识的进行多线程并行计算的情况,充分利用多个计算核心同时对数据进行运算,从而加快速度、降低功耗,而现有技术中由于行为和数据都被包含在对象中,各个对象之间是独立的,若想要将行为进行并行化,需要集中这些行为和数据并将其分配到各个线程上,很难在对象之间执行并行计算,使得多核计算技术未得到充分利用。
发明内容
有鉴于此,本申请提供了一种数据对象的处理方法、装置及设备,主要目的在于解决现有技术中数据对象在使用过程中,无法充分利用多级缓存和多核技术而导致数据操作效率较低问题。
根据本申请的第一个方面,提供了一种数据对象的处理方法,该方法包括:
按照类型将对象中的成员变量分别存储在连续的内存空间上,得到成员变量集合,所述成员变量集合中的成员变量具有相同的类型;
当触发对目标成员变量进行处理的操作指令时,利用所述目标成员变量所定义的类型遍历查询成员变量集合,获取与所述目标成员变量具有相同类型的成员变量集合;
通过执行所述操作指令,对所述与所述目标成员变量具有相同类型的成员变量集合中的成员变量进行处理。
根据本申请的第二个方面,一种数据对象的处理装置,该装置包括:
存储单元,用于按照类型将对象中的成员变量分别存储在连续的内存空间上,得到成员变量集合,所述成员变量集合中的成员变量具有相同的类型;
获取单元,用于当触发对目标成员变量进行处理的操作指令时,利用所述目标成员变量所定义的类型遍历查询成员变量集合,获取与所述目标成员变量具有相同类型的成员变量集合;
处理单元,用于通过执行所述操作指令,对所述与所述目标成员变量具有相同类型的成员变量集合中的成员变量进行处理。
根据本申请的第三个方面,提供了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述第一方面所述方法的步骤。
根据本申请的第四个方面,提供了一种可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面所述的方法的步骤。
借由上述技术方案,本申请提供的一种数据对象的处理方法、装置及设备,与目前现有方式中无法充分利用多级缓存和多核技术对数据对象进行处理的方式相比,本申请通过按照类型将对象中的成员变量分别存储在连续的内存空间上,得到成员变量集合,来改变数据对象在内存中的分配方式,令同一类型的成员变量在内存上连续,从而当触发对目标成员变量进行处理的操作指令时,利用目标成员变量所定义的类型遍历查询成员变量集合,获取与目标成员变量具有相同类型的成员变量集合,无需加在多余的成员变量,提升了数据操作效率,通过执行操作指令,对成员变量集合中的成员变量进行处理,有效提高了多级缓存的命中率,减少了等待内存响应的时间。
上述说明仅是本申请技术方案的概述,为了能够更清楚了解本申请的技术手段,而可依照说明书的内容予以实施,并且为了让本申请的上述和其它目的、特征和优点能够更明显易懂,以下特举本申请的具体实施方式。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1示出了本申请实施例提供的一种数据对象的处理方法的流程示意图;
图2示出了本申请实施例提供的另一种数据对象的处理方法的流程示意图;
图3a示出了本申请实施例提供的一种数据对象的处理装置的结构示意图;
图3b示出了本申请实施例提供的一种数据对象的处理装置的结构示意图;
图4示出了本申请实施例提供的一种数据对象的处理装置的结构示意图;
图5示出了本申请实施例提供的另一种数据对象的处理装置的结构示意图;
图6a示出了本申请实施例提供的另一种数据对象的处理装置的结构示意图;
图6b示出了本申请实施例提供的另一种数据对象的处理装置的结构示意图
图7示出了本发明实施例提供的一种计算机设备的装置结构示意图。
具体实施方式
现在将参照若干示例性实施例来论述本发明的内容。应当理解,论述了这些实施例仅是为了使得本领域普通技术人员能够更好地理解且因此实现本发明的内容,而不是暗示对本发明的范围的任何限制。
如本文中所使用的,术语“包括”及其变体要被解读为意味着“包括但不限于”的开放式术语。术语“基于”要被解读为“至少部分地基于”。术语“一个实施例”和“一种实施例”要被解读为“至少一个实施例”。术语“另一个实施例”要被解读为“至少一个其他实施例”。
在游戏应用场景中,多级缓存和多核成为了现代计算机的标准配置,在手机上也被广泛采用。多级缓存可以预先加载内存上相邻的数据,对于数据在内存上连续存放的场景,有非常大的加速效果。而现有的技术方案,因为每一种数据对象在内存中分散存储,。若执行遍历某种所需数据(如位置)的操作,需要遍历所有包含该数据的对象实例,使得多级缓存技术预先加载的数据并不能被用到。因此在实际算法执行时,算法将会在对象实例和实际所用的数据之间频繁跳转。这些跳转完全无法利用多级缓存,大多数都需要从主存读写,效率非常低。
为了解决该问题,本实施例提供了一种数据对象的处理方法,如图1所示,包括如下步骤:
101、按照类型将对象中的成员变量分别存储在连续的内存空间上,得到成员变量集合。
在游戏场景中,对象将在游戏运行时被创建、使用或销毁,通过将游戏场景中对象的旋转、缩放、平移等动作导出并封装为场景信息的配置文件,保存在资源路径中,以使得在对象使用过程中读取相应配置文件中的场景信息。然而,在具体应用过程中,由于游戏场景数量比较多,导出的时候需要遍历所有的游戏场景,一个一个读取场景信息中对象的名称、旋转、平移等动作。
本发明实施例中的对象主要围绕游戏场景展开的场景对象,针对每个游戏场景多可能会创建若干个场景对象,例如,对于地图场景中目标物体的运动过程,需要创建地图对象以及在地图中移动目标物体的对象。而针对游戏场景中的每个对象都具有各自的特性以区别其他对象,具体包括对象的属性和行为,其中,对象的属性描述了对象的状态,相当于成员变量,对象的行为描述了对象的功能,相当于成员方法,该属性可以表现为名称或者一些描述对象特性的状态等,例如,年龄、攻击速度、力量、防御等,该行为可以表现为一组操作,每个操作决定了对象的一种功能或行为,例如,对象的攻击动作、闪避动作、快跑动作等。
其中,成员变量集合中的成员变量具有相同的类型,这里的类型可以表现为能够在不同对象之间进行共享的信息,也就是每个对象都具有相同的变量成员,例如,游戏场景中创建对象A1-A10,每个对象中都定义有初始生命值和攻击力两个成员变量,所以,每个对象中都包含两个相同类型的成员变量。
对于本实施例的执行主体可以为数据对象的处理装置或设备,可以配置在游戏引擎中,为了便于对数据对象进行管理,可以通过将对象中具有相同类型的成员变量分别组织在一起,从而提高对相同类型成员变量的操作命中率,减少内存等待时间。
102、当触发对目标成员变量进行处理的操作指令时,利用所述目标成员变量所定义的类型遍历查询成员变量集合,获取与所述目标成员变量具有相同类型的成员变量集合。
其中,目标成员变量可以为当前游戏场景多需要执行操作处理的成员变量,操作指令可以为控制对象动作的指令,例如,控制对象加速、旋转、跳跃等。针对不同的游戏场景,场景可能需要使用不同类型的成员变量进行配合以实现游戏效果,随着对象不断增多,对象的成员变量分布变得复杂,而成员变量集合中汇总有多个对象的成员变量,但该成员变量具有相同的类型,以使得在目标成员变量使用过程中,可以利用目标变量成员的类型查询成员变量集合,从而获取与目标成员变量具有相同类型的成员变量集合。
现有技术中的目标成员变量通常会分布在多个对象中,所有对象分散存储在内存中,当触发目标成员变量进行处理的操作指令时,需要从每个对象中遍历处理目标成员变量,而本发明实施例中将具有相同类型的目标成员变量分别存储在连续的内存空间中,进而当触发目标成员变量进行处理的操作指令时,可以直接从与目标成员变量具有相同类型的成员变量集合中获取到所有的目标成员变量,无需从每个对象中遍历处理目标成员变量,极大节省了内存中数据对象的处理效率。
103、通过执行所述操作指令,对所述与所述目标成员变量具有相同类型的成员变量集合中的成员变量进行处理。
在本发明实施例中,在执行操作指令的过程中,需要调用操作指令对应的方法函数对目标成员变量进行处理,例如,读取对成员变量,回放成员变量,更新成员变量等等,由于成员变量集合中具有相同类型的成员变量,且成员变量集合中的成员变量在内存上连续分布,可以利用多级缓存技术预先加载内存上相邻的成员变量,直接调用操作指令对应的方法函数遍历处理成员变量集合中的成员变量,使得多级缓存能够直接加载到所有与目标成员变量具有相同类型的成员变量,提高缓存命中率,从而加快速度、降低功耗。
本申请实施例提供的数据对象的处理方法,与目前现有方式中无法充分利用多级缓存和多核技术对数据对象进行处理的方式相比,本申请通过按照类型将对象中的成员变量分别存储在连续的内存空间上,得到成员变量集合,来改变数据对象在内存中的分配方式,令同一类型的成员变量在内存上连续,从而当触发对目标成员变量进行处理的操作指令时,利用目标成员变量所定义的类型遍历查询成员变量集合,获取与目标成员变量具有相同类型的成员变量集合,无需加在多余的成员变量,提升了数据操作效率,通过执行操作指令,对成员变量集合中的成员变量进行处理,有效提高了多级缓存的命中率,减少了等待内存响应的时间。
进一步的,作为上述实施例具体实施方式的细化和扩展,为了完整说明本实施例的具体实施过程,本实施例提供了另一种数据对象的处理方法,如图2所示,该方法包括:
201、通过解析类实例化后对象中的数据结构,提取对象中成员变量的类型。
在游戏场景开发的过程中,难免会使用到一些数据结构将对象中的数据进行存储或者组织,通过将相互存在一种或者多种特定关系的数据元素集合设置合理的数据结构,可以带来更高的运行或者存储效率。本发明实施例中实例化后对象中的数据结构可以包括但不局限于数组、链表、栈和队列等在游戏场景中经常会使用到的数据结构。
具体应用过程中,对于数组结构中成员变量按照数组的形式进行组织,数组中的成员变量查找可以按照索引顺序进行,根据已知的索引可以方便读取成员变量,在游戏中的地图、分值排名经常会使用到数组结构,而对于插入或者删除的时候需要对索引顺序进行调整;对于链表结构中成员变量按照指针和数据域进行组织,链表中的成员变量的指针和数据域的查找可以通过链表之中指针的链接次序实现,进而基于变量成员对应的指针和数据域,提取对象中成员变量的类型,在游戏中成员变量需要动态出现、消除,链表可以方便对象的插入与删除;对于栈和队列结构中成员变量以线性结构组织起来,作为一种特殊的线性表,适合用来解决游戏中递归和排队类的问题。
在本发明实施例中,由于不同数据结构中成员变量具有不同的分布特点,针对不同数据结构的解析过程有所不同,具体可以针对对象的数据结构定义提取适用于不同数据结构进行成员变量类型提取的方法函数,例如,适用于数组结构对象中成员变量类型提取的方法函数,适用于链表结构对象中成员变量类型提取的方法函数,进一步利用适用于不同数据结构进行成员变量提取的方法函数,遍历提取对象中成员变量的类型。
202、汇总对象中具有相同类型特征的成员变量,并将所述具有相同类型特征的成员变量组织在一起分别存储在连续的空间内存上,得到成员变量集合。
可以理解的是,每个对象定义的相同类型的成员变量可以设置为相同的属性值,还可以设置为不同的属性值,例如,针对成员变量初始生命值,对象A1-A9在游戏场景中处于同一级别,初始生命值设置为a,而对象A10在游戏场景中不同于对象A1-A9,初始生命值设置为b,同样针对成员变量攻击力,对象A1-A10在游戏场景中所使用的武器有不同,攻击力可以基于使用武器进行个性化设置。
本发明实施例通过将对象中具有相同类型的成员变量汇总起来,得到成员变量集合,以使得相同类型的成员变量存储在连续的内存空间上,可以便于对相同类型的成员变量进行管理,提高内存利用率。
203、根据所述成员变量集合中成员变量所定义的类型,建立成员变量集合的索引。
在本发明实施例中,具体可以通过使用列表实例分别对接不同类型的成员变量集合,并由列表实例对每一种类型的成员变量集合在内存空间上的存储信息进行预先分配;进而根据成员变量集合在内存空间上分配的存储信息加载成员变量集合对应的数据源,读取成员变量集合中成员变量所定义的类型;将成员变量集合中成员变量所定义的类型作为关键字,建立列表实例所对接成员变量集合的类型索引。
对于上述的列表实例,具体可以使用InstanceList类来负责管理对象中的成员变量,对于类A中对象定义有x、y、z成员变量,可以将类A中所有对象A1-An由一个InstanceList对象实例进行管理,将类A中成员变量集合x、y、z分别由三个InstanceList对象实例进行管理。可以理解的是,类A中定义有更多的成员变量集合,则需要更多的InstanceList对象实例,此外,所有对象A1-An均在一块连续的内存空间上,任一对象An中定义的成员变量x、y、z也都分别存储在一块连续的内存空间上,形成成员变量集合x、y、z,每一种类型的成员变量集合对应的内存空间,可以由InstanceList对象实例根据类中对象数量进行预先分配,或者在运行期间额外开辟,或者随机分配一块任意大小的空间,这里不进行限定。
对于上述的索引,具体可以使用World类来建立InstanceList对象实例的索引,并且以成员变量集合中成员变量的类型作为关键字。通过向World类传入目标变量成员的类型,可以快速索引到该类型对应的InstanceList对象实例,从而索引到该类型的成员变量集合,实现对该类型的成员变量进行快速遍历。
具体应用过程中,创建一个对象通常分为两步:分配内存和初始化。示例性的,针对怪兽对象的创建,Monster的构造函数能够做所有的初始化操作,本发明实施例中只是保存了一个类型的引用,但在完整的游戏中,可能还需要加载图形、初始化怪物AI等其它设定工作,而这些都是发生在内存分配之后,也就是说在怪兽对象的构造函数调用之前就已经获得一段用于容纳它的内存,这一步是语言的运行时预先完成的。
可以理解的是,在游戏场景中,为了能更好的控制对象创建过程,通常使用一些自定义内存分配器或者对象池模式。例如,可以在Breed里定义一个“构造函数”以实现上述逻辑,取代简单的new操作,newMonster函数能在控制权被移交至初始化函数前,从一个池或者自定义堆栈里获取内存。将上述逻辑放进唯一能创建怪物的Breed里,以保证所有怪物对象由预先创建的内存负责管理。
204、当触发对目标成员变量进行处理的操作指令时,利用所述目标成员变量所定义的类型作为索引字段,遍历匹配类型索引中列表实例对接的成员变量集合。
在本发明实施例中,由于改变了成员变量在内存上的分布方式,将具有相同类型的成员变量汇总到一起,从而利用目标成员变量所定义的类型作为索引字段,可以快速索引到目标成员所定义类型相匹配的列表实例,进而获取相应类型的成员变量集合。
205、若所述成员变量集合中成员变量具有的类型与所述目标成员变量所定义的类型相同,则获取与所述目标成员变量具有相同类型的成员变量集合。
现有技术中,为了确保对象被正确管理、游戏引擎可以正常运行的前提下,一个类对相关数据的组织还会考虑逻辑上的整体性,通常会将一个对象中相关的变量成员在内存上组织在一起,当使用成员变量时需要对类中对象进行嵌套查找。例如,对于任意类A中包含成员变量x、y、z,一系列对象A在内存上的分布如图3a所示,在实际运行时,将以对象为单位进行使用,若触发使用类A进行三次计算的操作指令,分别使用成员变量x、y、z。第一次计算将依次遍历对象A1-A5,分别操作其中的成员变量x,第二次计算将依次遍历对象A1-A5,分别操作其中的成员变量y,第三次计算将依次遍历对象A1-A5,分别操作其中的成员变量z。而本发明实施例了改变了对象中成员变量在内存上的分布,同样对于任意类A中包含成员变量x、y、z,将变量成员x、y、z分别组织在一起,使得类A中仅包含成员变量x、y、z三者的指针,一系列对象A在内存上的分布如图3b所示,在实际运行时,将以变量成员集合为单位进行使用,同样若触发使用类A进行三次计算的操作指令,分别使用成员变量x、y、z。第一次计算依次遍历包含x的成员变量集合,第二次计算依次遍历包含y的成员变量集合,第三次计算依次遍历包含z的成员变量集合,从而省去了通过对象分别取遍历操作成员变量的过程,同时保证了这样使用可以高效利用多级缓存。
示例性的,如果需要计算SUM(A.x),SUM(A.y),SUM(A.z)。对于SUM(A.x),如果用现有技术方案的方式,则是遍历每一个对象A,查找成员变量x,分别进行累加:
foreach(A&a)
sum_x+=a.x;
这样,如果有N个对象A,需要进行N次从对象A中查找成员变量x的过程。同时,因为对象A的成员变量x相互之间在内存上不连续,所以这N次的缓存命中都是失败的。而如果使用本发明实施例中的方式,遍历每一个对象A,查找成员变量x的过程为:
foreach(X&x)
sum_x+=x;
一方面,遍历查询过程是直接获取x,不需要经过对象A;另一方面,因为对接x的InstanceList对象实例确保所有的成本变量x在内存上连续,所以这N次计算,只有少数几次的缓存没有命中。
206、将对象中的成员方法与成员变量进行拆分,以使得所述成员方法对应的指针存储于对象中,而成员方法作为单独的函数不被任何对象所包含。
现有技术中,为了实现数据和操作的结合,通常成员变量和成员方法都被包含在对象中,各个对象之间是相互独立的。当使用成员方法时需要对类中对象进行遍历调用。例如,对于对象B中定义有成员方法updateposition(),该成员方法具有使用对象B内部的position数据的功能,在实际应用的过程中,由于每一个成员方法updateposition()内部仅能获取当前对象实例的position数据,且无法跨对象实例进行调度分配,难以将该成员方法放到多个线程中进行并行计算。而本发明实施例中的成员方法updateposition()将作为一个单独的函数,该函数内部直接遍历所有的position数据进行计算,而与对象B没有直接联系,此时如果需要将updateposition()改写为并行化函数,只需要将计算过程进行并行化,使得position是可获得的,任务是可调度的。
可以理解的是,拆分后的position数据作为成员变量逻辑上属于对象B,而实际上是在InstanceList实例管理的连续内存中,而updatePosition()作为成员方法不在对象B中,甚至可以是一个单独的函数,不需要被任何对象包含。所以这里的对象B只拥有position的指针。
207、通过执行所述操作指令,对所述与所述目标成员变量具有相同类型的成员变量集合中的成员变量进行处理。
在本发明实施例中,操作指令可能为调用单个方法成员,还可能调用多个方法成员,若操作指令调用单个成员方法,则具体可以通过调用目标对象定义的成员方法;将所目标对象定义的成员方法作为单独的执行函数,遍历处理与目标成员变量具有相同类型的成员变量集合中的成员变量;若操作指令调用多个成员方法,且所述多个成员方法对应有执行顺序,则具体可以通过调用目标对象定义的多个成员方法;将目标对象定义的每个成员方法作为单独的执行函数,按照多个成员方法对应的执行顺序,遍历处理与目标成员变量具有相同类型的成员变量集合中的成员变量。
具体在将目标对象定义的每个成员方法作为单独的执行函数,按照多个成员方法对应的执行顺序,遍历处理与目标成员变量具有相同类型的成员变量集合中的成员变量的过程中,可以将目标对象定义的每个成员方法作为单独的执行函数,按照多个成员方法对应的执行顺序将多个成员方法分配到并行线程中;基于并行线程中内的多个成员方法,遍历处理与目标成员变量具有相同类型的成员变量集合中的成员变量。
示例性的,按照现有技术中使用成员方法,当需要执行更新某个对象B的操作指令时,具体调用过程可以如下:
B::update()
{
Update1();
Update2();
Update3();
…
}
其中的操作指令包括三个成员方法,分别为更新位置,碰撞,运动状态等等。然后由系统来调用,具体的调用过程如下:
System::run()
{
Foreach(B&b)
b.update();
}
需要说明的是,这里Update1(),Update2(),Update3()有顺序需求。例如,同一个对象B的实例的Update1()一定要在Update2()之前发生。这种情况下,想要将System::run()并行化是困难的,因为每一个对象B的内部都有执行顺序。而在本发明实施例中,System::run()具体的调用过程如下:
System::run()
{
Update1();
Update2();
Update3();
}
在这三个函数内部,直接通过World类来索引所需的数据,不通过对象B。这样,很容易将Update1()、Update2()、Update3()分别并行化,只需要在三个函数调用之间同步一次,就可以保证三个函数依次发生。这个并行化过程,可以看作直接将Update1()分配给多个线程执行,例如一共有N个对象,用4个线程并行,只需要[0,N/4)的对象分配给第一个线程,[N/4,N/2)的对象分配给第二个线程……即可。
本发明实施例中,针对现代计算机的多级缓存和多核技术。从数据出发,改变游戏对象的内存分配和管理方式,从而有效利用多级缓存。同时,进一步改变对数据的遍历方法和使用方式,避免对对象中数据的嵌套查找,减少缓存未命中的情况。在此基础上,在游戏引擎中普及并行算法,有效利用计算机和手机提供的多个计算核心。
进一步的,作为图1和图2方法的具体实现,本申请实施例提供了一种数据对象的处理装置,如图4所示,该装置包括:存储单元31、获取单元32、处理单元33。
存储单元31,可以用于按照类型将对象中的成员变量分别存储在连续的内存空间上,得到成员变量集合,所述成员变量集合中的成员变量具有相同的类型;
获取单元32,可以用于当触发对目标成员变量进行处理的操作指令时,利用所述目标成员变量所定义的类型遍历查询成员变量集合,获取与所述目标成员变量具有相同类型的成员变量集合;
处理单元33,可以用于通过执行所述操作指令,对所述与所述目标成员变量具有相同类型的成员变量集合中的成员变量进行处理。
本发明实施例提供的数据对象的处理装置,与目前现有方式中无法充分利用多级缓存和多核技术对数据对象进行处理的方式相比,本申请通过按照类型将对象中的成员变量分别存储在连续的内存空间上,得到成员变量集合,来改变数据对象在内存中的分配方式,令同一类型的成员变量在内存上连续,从而当触发对目标成员变量进行处理的操作指令时,利用目标成员变量所定义的类型遍历查询成员变量集合,获取与目标成员变量具有相同类型的成员变量集合,无需加在多余的成员变量,提升了数据操作效率,通过执行操作指令,对成员变量集合中的成员变量进行处理,有效提高了多级缓存的命中率,减少了等待内存响应的时间。
在具体的应用场景中,如图5所示,所述存储单元31包括:
提取模块311,可以用于通过解析类实例化后的对象中的数据结构,提取对象中成员变量的类型特征;
汇总模块312,可以用于汇总对象中具有相同类型特征的成员变量,并将所述具有相同类型特征的成员变量组织在一起分别存储在连续的空间内存上,得到成员变量集合。
在具体的应用场景中,如图5所示,所述实例化后对象中的数据结构为链表结构,所述链表结构中成员变量按照指针和数据域进行组织,所述提取模块311包括:
获取子模块3111,可以用于通过查询实例化后对象中的链表结构之中指针的链接次序,获取变量成员对应的指针和数据域;
提取子模块3112,可以用于基于所述变量成员对应的指针和数据域,提取对象中成员变量的类型。
在具体的应用场景中,如图5所示,所述装置还包括:
建立单元34,可以用于在所述按照类型特征将对象中的成员变量分别存储在连续的内存空间上,得到成员变量集合之后,根据所述成员变量集合中成员变量所定义的类型,建立成员变量集合的索引。
在具体的应用场景中,如图5所示,所述建立单元34包括:
分配模块341,可以用于通过使用列表实例分别对接不同类型的成员变量集合,并由列表实例对每一种类型的成员变量集合在内存空间上的存储信息进行预先分配;
读取模块342,可以用于根据所述成员变量集合在内存空间上分配的存储信息加载所述成员变量集合对应的数据源,读取所述成员变量集合中成员变量所定义的类型;
建立模块343,可以用于将所述所述成员变量集合中成员变量所定义的类型作为关键字,建立所述列表实例所对接成员变量集合的类型索引。
在具体的应用场景中,如图5所示,所述获取单元32包括:
匹配模块321,可以用于利用所述目标成员变量所定义的类型作为索引字段,遍历匹配类型索引中列表实例对接的成员变量集合;
获取模块322,可以用于若所述成员变量集合中成员变量具有的类型与所述目标成员变量所定义的类型相同,则获取与所述目标成员变量具有相同类型的成员变量集合。
在具体的应用场景中,如图5所述,所述装置还包括:
拆分单元35,可以用于在所述通过执行所述操作指令,对所述与所述目标成员变量具有相同类型的成员变量集合中的成员变量进行处理之前,将对象中的成员方法与成员变量进行拆分,以使得所述成员方法对应的指针存储于对象中,而成员方法作为单独的函数不被任何对象所包含。
在具体的应用场景中,如图6a所述,若所述操作指令调用单个成员方法,则所述处理单元33包括:
第一调用模块331,可以用于调用所述目标对象定义的成员方法;
第一处理模块332,可以用于将所述目标对象定义的成员方法作为单独的执行函数,遍历处理所述与所述目标成员变量具有相同类型的成员变量集合中的成员变量。
在具体的应用场景中,如图6b所述,若所述操作指令调用多个成员方法,且所述多个成员方法对应有执行顺序,则所述处理单元33包括:
第二调用模块333,可以用于调用所述目标对象定义的多个成员方法;
第二处理模块334,可以用于将所述目标对象定义的每个成员方法作为单独的执行函数,按照所述多个成员方法对应的执行顺序,遍历处理所述与所述目标成员变量具有相同类型的成员变量集合中的成员变量。
在具体的应用场景中,如图6b所述,所述第二处理模块334包括:
执行子模块3341,可以用于将所述目标对象定义的每个成员方法作为单独的执行函数,按照所述多个成员方法对应的执行顺序将所述多个成员方法分配到并行线程中;
处理子模块3342,可以用于基于所述并行线程中内的多个成员方法,遍历处理所述与所述目标成员变量具有相同类型的成员变量集合中的成员变量。
需要说明的是,本实施例提供的一种数据对象的处理装置所涉及各功能单元的其它相应描述,可以参考图1-图2中的对应描述,在此不再赘述。
基于上述如图1-图2所示方法,相应的,本申请实施例还提供了一种存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述如图1-图2所示的数据对象的处理方法。
基于这样的理解,本申请的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施场景所述的方法。
基于上述如图1-图2所示的方法,以及图4-5所示的虚拟装置实施例,为了实现上述目的,本申请实施例还提供了一种数据对象的处理的实体设备,具体可以为计算机,智能手机,平板电脑,智能手表,服务器,或者网络设备等,该实体设备包括存储介质和处理器;存储介质,用于存储计算机程序;处理器,用于执行计算机程序以实现上述如图1-图2所示的数据对象的处理方法。
可选的,该实体设备还可以包括用户接口、网络接口、摄像头、射频(RadioFrequency,RF)电路,传感器、音频电路、WI-FI模块等等。用户接口可以包括显示屏(Display)、输入单元比如键盘(Keyboard)等,可选用户接口还可以包括USB接口、读卡器接口等。网络接口可选的可以包括标准的有线接口、无线接口(如WI-FI接口)等。
在示例性实施例中,参见图7,上述实体设备400包括通信总线、处理器、存储器和通信接口,还可以包括、输入输出接口和显示设备,其中,各个功能单元之间可以通过总线完成相互间的通信。该存储器存储有计算机程序,处理器,用于执行存储器上所存放的程序,执行上述实施例中的画作挂载方法。
本领域技术人员可以理解,本实施例提供的一种数据对象的处理的实体设备结构并不构成对该实体设备的限定,可以包括更多或更少的部件,或者组合某些部件,或者不同的部件布置。
存储介质中还可以包括操作系统、网络通信模块。操作系统是管理上述店铺搜索信息处理的实体设备硬件和软件资源的程序,支持信息处理程序以及其它软件和/或程序的运行。网络通信模块用于实现存储介质内部各组件之间的通信,以及与信息处理实体设备中其它硬件和软件之间通信。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本申请可以借助软件加必要的通用硬件平台的方式来实现,也可以通过硬件实现。通过应用本申请的技术方案,与目前现有方式相比,本申请通过改变数据对象在内存中的分配方式,令同一类型的成员变量在内存上连续,从而当触发对目标成员变量进行处理的操作指令时,利用目标成员变量所定义的类型遍历查询成员变量集合,获取与目标成员变量具有相同类型的成员变量集合,无需加在多余的成员变量,提升了数据操作效率,通过执行操作指令,对成员变量集合中的成员变量进行处理,有效提高了多级缓存的命中率,减少了等待内存响应的时间。
本领域技术人员可以理解附图只是一个优选实施场景的示意图,附图中的模块或流程并不一定是实施本申请所必须的。本领域技术人员可以理解实施场景中的装置中的模块可以按照实施场景描述进行分布于实施场景的装置中,也可以进行相应变化位于不同于本实施场景的一个或多个装置中。上述实施场景的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
上述本申请序号仅仅为了描述,不代表实施场景的优劣。以上公开的仅为本申请的几个具体实施场景,但是,本申请并非局限于此,任何本领域的技术人员能思之的变化都应落入本申请的保护范围。
本发明实施例还包括在下列编号条款中规定的这些和其他方面:
1、一种数据对象的处理方法,包括:
按照类型将对象中的成员变量分别存储在连续的内存空间上,得到成员变量集合,所述成员变量集合中的成员变量具有相同的类型;
当触发对目标成员变量进行处理的操作指令时,利用所述目标成员变量所定义的类型遍历查询成员变量集合,获取与所述目标成员变量具有相同类型的成员变量集合;
通过执行所述操作指令,对所述与所述目标成员变量具有相同类型的成员变量集合中的成员变量进行处理。
2、根据条款1所述的方法,其中所述按照类型特征将对象中的成员变量分别存储在连续的内存空间上,得到成员变量集合,具体包括:
通过解析类实例化后对象中的数据结构,提取对象中成员变量的类型;
汇总对象中具有相同类型的成员变量,并将所述具有相同类型的成员变量组织在一起分别存储在连续的空间内存上,得到成员变量集合。
3、根据条款2所述的方法,其中所述实例化后对象中的数据结构为链表结构,所述链表结构中成员变量按照指针和数据域进行组织,所述通过解析类实例化后对象中的数据结构,提取对象中成员变量的类型,具体包括:
通过查询实例化后对象中的链表结构之中指针的链接次序,获取变量成员对应的指针和数据域;
基于所述变量成员对应的指针和数据域,提取对象中成员变量的类型。
4、根据条款1所述的方法,其中在所述按照类型特征将对象中的成员变量分别存储在连续的内存空间上,得到成员变量集合之后,所述方法还包括:
根据所述成员变量集合中成员变量所定义的类型,建立成员变量集合的索引。
5、根据条款4所述的方法,其中所述根据所述成员变量集合中成员变量所定义的类型字段,建立成员变量集合的索引,具体包括:
通过使用列表实例分别对接不同类型的成员变量集合,并由列表实例对每一种类型的成员变量集合在内存空间上的存储信息进行预先分配;
根据所述成员变量集合在内存空间上分配的存储信息加载所述成员变量集合对应的数据源,读取所述成员变量集合中成员变量所定义的类型;
将所述所述成员变量集合中成员变量所定义的类型作为关键字,建立所述列表实例所对接成员变量集合的类型索引。
6、根据条款4所述的方法,其中所述利用所述目标成员变量所定义的类型遍历查询成员变量集合,获取与所述目标成员变量具有相同类型的成员变量集合,具体包括:
利用所述目标成员变量所定义的类型作为索引字段,遍历匹配类型索引中列表实例对接的成员变量集合;
若所述成员变量集合中成员变量具有的类型与所述目标成员变量所定义的类型相同,则获取与所述目标成员变量具有相同类型的成员变量集合。
7、根据条款1-6中任一项所述的方法,其中在所述通过执行所述操作指令,对所述与所述目标成员变量具有相同类型的成员变量集合中的成员变量进行处理之前,所述方法还包括:
将对象中的成员方法与成员变量进行拆分,以使得所述成员方法对应的指针存储于对象中,而成员方法作为单独的函数不被任何对象所包含。
8、根据条款7所述的方法,其中若所述操作指令调用单个成员方法,则所述通过执行所述操作指令,对所述与所述目标成员变量具有相同类型的成员变量集合中的成员变量进行处理,具体包括:
调用所述目标对象定义的成员方法;
将所述目标对象定义的成员方法作为单独的执行函数,遍历处理所述与所述目标成员变量具有相同类型的成员变量集合中的成员变量。
9、根据条款7所述的方法,其中若所述操作指令调用多个成员方法,且所述多个成员方法对应有执行顺序,则所述通过执行所述操作指令,对所述与所述目标成员变量具有相同类型的成员变量集合中的成员变量进行处理,具体包括:
调用所述目标对象定义的多个成员方法;
将所述目标对象定义的每个成员方法作为单独的执行函数,按照所述多个成员方法对应的执行顺序,遍历处理所述与所述目标成员变量具有相同类型的成员变量集合中的成员变量。
10、根据条款9所述的方法,其中所述将所述目标对象定义的每个成员方法作为单独的执行函数,按照所述多个成员方法对应的执行顺序,遍历处理所述与所述目标成员变量具有相同类型的成员变量集合中的成员变量,具体包括:
将所述目标对象定义的每个成员方法作为单独的执行函数,按照所述多个成员方法对应的执行顺序将所述多个成员方法分配到并行线程中;
基于所述并行线程中内的多个成员方法,遍历处理所述与所述目标成员变量具有相同类型的成员变量集合中的成员变量。
11、一种数据对象的处理装置,包括:
存储单元,用于按照类型将对象中的成员变量分别存储在连续的内存空间上,得到成员变量集合,所述成员变量集合中的成员变量具有相同的类型;
获取单元,用于当触发对目标成员变量进行处理的操作指令时,利用所述目标成员变量所定义的类型遍历查询成员变量集合,获取与所述目标成员变量具有相同类型的成员变量集合;
处理单元,用于通过执行所述操作指令,对所述与所述目标成员变量具有相同类型的成员变量集合中的成员变量进行处理。
12、根据条款11所述的方法,其中所述存储单元包括:
提取模块,用于通过解析类实例化后对象中的数据结构,提取对象中成员变量的类型;
汇总模块,用于汇总对象中具有相同类型的成员变量,并将所述具有相同类型的成员变量组织在一起分别存储在连续的空间内存上,得到成员变量集合。
13、根据条款12所述的方法,其中所述实例化后对象中的数据结构为链表结构,所述链表结构中成员变量按照指针和数据域进行组织,所述提取模块包括:
获取子模块,用于通过查询实例化后对象中的链表结构之中指针的链接次序,获取变量成员对应的指针和数据域;
提取子模块,用于基于所述变量成员对应的指针和数据域,提取对象中成员变量的类型。
14、根据条款11所述的方法,其中所述装置还包括:
建立单元,用于在所述按照类型特征将对象中的成员变量分别存储在连续的内存空间上,得到成员变量集合之后,根据所述成员变量集合中成员变量所定义的类型,建立成员变量集合的索引。
15、根据条款14所述的装置,其中所述建立单元包括:
分配模块,用于通过使用列表实例分别对接不同类型的成员变量集合,并由列表实例对每一种类型的成员变量集合在内存空间上的存储信息进行预先分配;
读取模块,用于根据所述成员变量集合在内存空间上分配的存储信息加载所述成员变量集合对应的数据源,读取所述成员变量集合中成员变量所定义的类型;
建立模块,用于将所述所述成员变量集合中成员变量所定义的类型作为关键字,建立所述列表实例所对接成员变量集合的类型索引。
16、根据条款14所述的装置,其中所述获取单元包括:
匹配模块,用于利用所述目标成员变量所定义的类型作为索引字段,遍历匹配类型索引中列表实例对接的成员变量集合;
获取模块,用于若所述成员变量集合中成员变量具有的类型与所述目标成员变量所定义的类型相同,则获取与所述目标成员变量具有相同类型的成员变量集合。
17、根据条款11-16中任一项所述的装置,其中所述装置还包括:
拆分单元,用于在所述通过执行所述操作指令,对所述与所述目标成员变量具有相同类型的成员变量集合中的成员变量进行处理之前,将对象中的成员方法与成员变量进行拆分,以使得所述成员方法对应的指针存储于对象中,而成员方法作为单独的函数不被任何对象所包含。
18、根据条款17所述的装置,其中若所述操作指令调用单个成员方法,则所述处理单元包括:
第一调用模块,用于调用所述目标对象定义的成员方法;
第一处理模块,用于将所述目标对象定义的成员方法作为单独的执行函数,遍历处理所述与所述目标成员变量具有相同类型的成员变量集合中的成员变量。
19、根据条款17所述的装置,其中若所述操作指令调用多个成员方法,且所述多个成员方法对应有执行顺序,则所述处理单元包括:第二调用模块,用于调用所述目标对象定义的多个成员方法;
第二处理模块,用于将所述目标对象定义的每个成员方法作为单独的执行函数,按照所述多个成员方法对应的执行顺序,遍历处理所述与所述目标成员变量具有相同类型的成员变量集合中的成员变量。
20、根据条款19所述的装置,其中所述第二处理模块包括:
执行子模块,用于将所述目标对象定义的每个成员方法作为单独的执行函数,按照所述多个成员方法对应的执行顺序将所述多个成员方法分配到并行线程中;
处理子模块,用于基于所述并行线程中内的多个成员方法,遍历处理所述与所述目标成员变量具有相同类型的成员变量集合中的成员变量。
21、一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现条款1至10中任一项所述数据对象的处理方法的步骤。
22、一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现条款1至10中任一项所述数据对象的处理方法的步骤。
Claims (10)
1.一种数据对象的处理方法,其特征在于,包括:
按照类型将对象中的成员变量分别存储在连续的内存空间上,得到成员变量集合,所述成员变量集合中的成员变量具有相同的类型;
当触发对目标成员变量进行处理的操作指令时,利用所述目标成员变量所定义的类型遍历查询成员变量集合,获取与所述目标成员变量具有相同类型的成员变量集合;
通过执行所述操作指令,对所述与所述目标成员变量具有相同类型的成员变量集合中的成员变量进行处理。
2.根据权利要求1所述的方法,其特征在于,所述按照类型特征将对象中的成员变量分别存储在连续的内存空间上,得到成员变量集合,具体包括:
通过解析类实例化后对象中的数据结构,提取对象中成员变量的类型;
汇总对象中具有相同类型的成员变量,并将所述具有相同类型的成员变量组织在一起分别存储在连续的空间内存上,得到成员变量集合。
3.根据权利要求2所述的方法,其特征在于,所述实例化后对象中的数据结构为链表结构,所述链表结构中成员变量按照指针和数据域进行组织,所述通过解析类实例化后对象中的数据结构,提取对象中成员变量的类型,具体包括:
通过查询实例化后对象中的链表结构之中指针的链接次序,获取变量成员对应的指针和数据域;
基于所述变量成员对应的指针和数据域,提取对象中成员变量的类型。
4.根据权利要求1所述的方法,其特征在于,在所述按照类型特征将对象中的成员变量分别存储在连续的内存空间上,得到成员变量集合之后,所述方法还包括:
根据所述成员变量集合中成员变量所定义的类型,建立成员变量集合的索引。
5.根据权利要求4所述的方法,其特征在于,所述根据所述成员变量集合中成员变量所定义的类型字段,建立成员变量集合的索引,具体包括:
通过使用列表实例分别对接不同类型的成员变量集合,并由列表实例对每一种类型的成员变量集合在内存空间上的存储信息进行预先分配;
根据所述成员变量集合在内存空间上分配的存储信息加载所述成员变量集合对应的数据源,读取所述成员变量集合中成员变量所定义的类型;
将所述所述成员变量集合中成员变量所定义的类型作为关键字,建立所述列表实例所对接成员变量集合的类型索引。
6.根据权利要求4所述的方法,其特征在于,所述利用所述目标成员变量所定义的类型遍历查询成员变量集合,获取与所述目标成员变量具有相同类型的成员变量集合,具体包括:
利用所述目标成员变量所定义的类型作为索引字段,遍历匹配类型索引中列表实例对接的成员变量集合;
若所述成员变量集合中成员变量具有的类型与所述目标成员变量所定义的类型相同,则获取与所述目标成员变量具有相同类型的成员变量集合。
7.根据权利要求1-6中任一项所述的方法,其特征在于,在所述通过执行所述操作指令,对所述与所述目标成员变量具有相同类型的成员变量集合中的成员变量进行处理之前,所述方法还包括:
将对象中的成员方法与成员变量进行拆分,以使得所述成员方法对应的指针存储于对象中,而成员方法作为单独的函数不被任何对象所包含。
8.一种数据对象的处理装置,其特征在于,包括:
存储单元,用于按照类型将对象中的成员变量分别存储在连续的内存空间上,得到成员变量集合,所述成员变量集合中的成员变量具有相同的类型;
获取单元,用于当触发对目标成员变量进行处理的操作指令时,利用所述目标成员变量所定义的类型遍历查询成员变量集合,获取与所述目标成员变量具有相同类型的成员变量集合;
处理单元,用于通过执行所述操作指令,对所述与所述目标成员变量具有相同类型的成员变量集合中的成员变量进行处理。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述数据对象的处理方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述数据对象的处理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010410156.2A CN111737166B (zh) | 2020-05-15 | 2020-05-15 | 数据对象的处理方法、装置及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010410156.2A CN111737166B (zh) | 2020-05-15 | 2020-05-15 | 数据对象的处理方法、装置及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111737166A true CN111737166A (zh) | 2020-10-02 |
CN111737166B CN111737166B (zh) | 2023-04-07 |
Family
ID=72647264
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010410156.2A Active CN111737166B (zh) | 2020-05-15 | 2020-05-15 | 数据对象的处理方法、装置及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111737166B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112256355A (zh) * | 2020-12-24 | 2021-01-22 | 完美世界(北京)软件科技发展有限公司 | 数据驱动的系统功能加载方法、设备及存储介质 |
CN117909019A (zh) * | 2024-03-19 | 2024-04-19 | 四川九阵科技股份有限公司 | 一种动态界面展示方法、装置、电子设备及介质 |
Citations (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5613122A (en) * | 1994-11-14 | 1997-03-18 | Object Technology Licensing Corp. | Object-oriented operating system |
JPH11120200A (ja) * | 1997-10-17 | 1999-04-30 | Nec Corp | オブジェクト指向データベースにおける構造体型メンバ変数のインデックス実現方法 |
US6442751B1 (en) * | 1998-12-14 | 2002-08-27 | International Business Machines Corporation | Determination of local variable type and precision in the presence of subroutines |
US6701420B1 (en) * | 1999-02-01 | 2004-03-02 | Hewlett-Packard Company | Memory management system and method for allocating and reusing memory |
CN101271428A (zh) * | 2008-02-25 | 2008-09-24 | 北京理工大学 | 一种对象数据存储管理的装置和方法 |
CN101315628A (zh) * | 2007-06-01 | 2008-12-03 | 华为技术有限公司 | 内存数据库系统及实现内存数据库的方法和装置 |
CN101916290A (zh) * | 2010-08-18 | 2010-12-15 | 中兴通讯股份有限公司 | 内存数据库的管理方法和装置 |
US20130275649A1 (en) * | 2012-04-16 | 2013-10-17 | Renmin University Of China | Access Optimization Method for Main Memory Database Based on Page-Coloring |
CN103577553A (zh) * | 2013-10-18 | 2014-02-12 | 汉柏科技有限公司 | 数据存储方法 |
US20140351233A1 (en) * | 2013-05-24 | 2014-11-27 | Software AG USA Inc. | System and method for continuous analytics run against a combination of static and real-time data |
US20150379456A1 (en) * | 2014-06-30 | 2015-12-31 | Utopia Global, Inc. | Systems and techniques for ensuring the integrity of enterprise asset management data |
CN107066518A (zh) * | 2017-02-08 | 2017-08-18 | 阿里巴巴集团控股有限公司 | 数据处理方法及系统 |
JP6232109B1 (ja) * | 2016-09-27 | 2017-11-15 | ウィンボンド エレクトロニクス コーポレーション | 半導体記憶装置および連続読出し方法 |
CN109701273A (zh) * | 2019-01-16 | 2019-05-03 | 腾讯科技(北京)有限公司 | 游戏数据的处理方法、装置、电子设备及可读存储介质 |
CN110059129A (zh) * | 2019-04-28 | 2019-07-26 | 顶象科技有限公司 | 数据存储方法、装置及电子设备 |
WO2019237866A1 (zh) * | 2018-06-12 | 2019-12-19 | 杨力祥 | 一种运行时访问控制方法及计算装置 |
CN111008254A (zh) * | 2019-12-03 | 2020-04-14 | 北京锐安科技有限公司 | 一种对象创建方法、装置、计算机设备和存储介质 |
-
2020
- 2020-05-15 CN CN202010410156.2A patent/CN111737166B/zh active Active
Patent Citations (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5613122A (en) * | 1994-11-14 | 1997-03-18 | Object Technology Licensing Corp. | Object-oriented operating system |
JPH11120200A (ja) * | 1997-10-17 | 1999-04-30 | Nec Corp | オブジェクト指向データベースにおける構造体型メンバ変数のインデックス実現方法 |
US6442751B1 (en) * | 1998-12-14 | 2002-08-27 | International Business Machines Corporation | Determination of local variable type and precision in the presence of subroutines |
US6701420B1 (en) * | 1999-02-01 | 2004-03-02 | Hewlett-Packard Company | Memory management system and method for allocating and reusing memory |
CN101315628A (zh) * | 2007-06-01 | 2008-12-03 | 华为技术有限公司 | 内存数据库系统及实现内存数据库的方法和装置 |
CN101271428A (zh) * | 2008-02-25 | 2008-09-24 | 北京理工大学 | 一种对象数据存储管理的装置和方法 |
CN101916290A (zh) * | 2010-08-18 | 2010-12-15 | 中兴通讯股份有限公司 | 内存数据库的管理方法和装置 |
US20130275649A1 (en) * | 2012-04-16 | 2013-10-17 | Renmin University Of China | Access Optimization Method for Main Memory Database Based on Page-Coloring |
US20140351233A1 (en) * | 2013-05-24 | 2014-11-27 | Software AG USA Inc. | System and method for continuous analytics run against a combination of static and real-time data |
CN103577553A (zh) * | 2013-10-18 | 2014-02-12 | 汉柏科技有限公司 | 数据存储方法 |
US20150379456A1 (en) * | 2014-06-30 | 2015-12-31 | Utopia Global, Inc. | Systems and techniques for ensuring the integrity of enterprise asset management data |
JP6232109B1 (ja) * | 2016-09-27 | 2017-11-15 | ウィンボンド エレクトロニクス コーポレーション | 半導体記憶装置および連続読出し方法 |
CN107066518A (zh) * | 2017-02-08 | 2017-08-18 | 阿里巴巴集团控股有限公司 | 数据处理方法及系统 |
WO2019237866A1 (zh) * | 2018-06-12 | 2019-12-19 | 杨力祥 | 一种运行时访问控制方法及计算装置 |
CN109701273A (zh) * | 2019-01-16 | 2019-05-03 | 腾讯科技(北京)有限公司 | 游戏数据的处理方法、装置、电子设备及可读存储介质 |
CN110059129A (zh) * | 2019-04-28 | 2019-07-26 | 顶象科技有限公司 | 数据存储方法、装置及电子设备 |
CN111008254A (zh) * | 2019-12-03 | 2020-04-14 | 北京锐安科技有限公司 | 一种对象创建方法、装置、计算机设备和存储介质 |
Non-Patent Citations (3)
Title |
---|
H. GRGIC 等: "Comparison of garbage collectors in Java programming language", 《2018 41ST INTERNATIONAL CONVENTION ON INFORMATION AND COMMUNICATION TECHNOLOGY, ELECTRONICS AND MICROELECTRONICS (MIPRO)》 * |
宋双 等: "一种嵌入式数据库内存管理设计与实现", 《计算机技术与应用进展》 * |
隽志才等: "面向对象的交通网络分布式仿真并行数据结构", 《交通与计算机》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112256355A (zh) * | 2020-12-24 | 2021-01-22 | 完美世界(北京)软件科技发展有限公司 | 数据驱动的系统功能加载方法、设备及存储介质 |
CN117909019A (zh) * | 2024-03-19 | 2024-04-19 | 四川九阵科技股份有限公司 | 一种动态界面展示方法、装置、电子设备及介质 |
CN117909019B (zh) * | 2024-03-19 | 2024-06-11 | 四川九阵科技股份有限公司 | 一种动态界面展示方法、装置、电子设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111737166B (zh) | 2023-04-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8200594B1 (en) | System, method, and computer program product for accelerating a game artificial intelligence process | |
CN108829413A (zh) | 数据更新方法、装置及计算机可读存储介质、服务器 | |
CN110321448B (zh) | 一种图像检索方法、装置和存储介质 | |
WO2014194695A1 (en) | Method and server for pvp team matching in computer games | |
CN105608162B (zh) | 文件处理方法和装置 | |
CN111737166B (zh) | 数据对象的处理方法、装置及设备 | |
CN113209633A (zh) | 镜像的处理方法、装置、电子设备及可读存储介质 | |
KR102646619B1 (ko) | 컴포지트 메모리 장치를 포함하는 전자 장치에 파일 시스템을 제공하는 시스템 및 방법 | |
CN108431831A (zh) | 循环代码处理器优化 | |
CN111984425B (zh) | 用于操作系统的内存管理方法、装置及设备 | |
WO2014194654A1 (en) | Method and apparatus for page view switching | |
US11907164B2 (en) | File loading method and apparatus, electronic device, and storage medium | |
US20210158131A1 (en) | Hierarchical partitioning of operators | |
Ma et al. | Dependency-aware data locality for MapReduce | |
US20140365960A1 (en) | Method and apparatus for page view switching | |
CN115774552A (zh) | 配置化的算法设计方法、装置、电子设备及可读存储介质 | |
US10990591B2 (en) | Sub-query processing system, method, and program | |
CN111258950B (zh) | 原子访存方法、存储介质、计算机设备、装置和系统 | |
CN113407343A (zh) | 一种基于资源分配的业务处理方法、装置及设备 | |
CN116302363A (zh) | 一种虚拟机创建方法、系统、计算机设备及存储介质 | |
US9149725B2 (en) | Method and server for PVP team matching in computer games | |
US11372677B1 (en) | Efficient scheduling of load instructions | |
JP7403465B2 (ja) | 短絡高速化のための複合条件の並べ替え | |
CN114047918A (zh) | 任务处理方法、装置、设备、存储介质及产品 | |
CN113144606A (zh) | 虚拟对象的技能触发方法及相关设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
EE01 | Entry into force of recordation of patent licensing contract |
Application publication date: 20201002 Assignee: Beijing Xuanguang Technology Co.,Ltd. Assignor: Perfect world (Beijing) software technology development Co.,Ltd. Contract record no.: X2022990000514 Denomination of invention: Method, device and device for processing data objects License type: Exclusive License Record date: 20220817 |
|
EE01 | Entry into force of recordation of patent licensing contract | ||
GR01 | Patent grant | ||
GR01 | Patent grant |