一种对象数据的构建方法和装置制造方法及图纸

技术编号:19744849 阅读:15 留言:0更新日期:2018-12-12 04:40
本申请实施例公开了一种对象数据的构建方法和装置,其中,该方法包括:定义内存分配模型,将对象数据包含的成员数量和各个成员的长度输入该内存分配模型,该内存分配模型能够根据输入的成员数量以及成员的长度,为该对象数据分配内存空间;根据对象数据包含的成员数量在内存空间中构建索引数据,该索引数据用于记录对象数据中各个成员在内存空间中的存储地址;并将各个成员对应的存储地址写入索引数据中。该对象数据的构建方法,能够一次性地为对象数据的所有成员分配内存,减少构建对象数据时需要耗费的内核开销。

【技术实现步骤摘要】
一种对象数据的构建方法和装置
本申请涉及程序设计
,特别是涉及一种对象数据的构建方法和装置。
技术介绍
在服务器开发、大数据计算等领域的程序设计中,经常运用分层设计划分模块,如常见的网络层-业务层-数据库层架构。为了提高性能,各层级常采用多线程、线程池等技术,并列使用队列数据结构存取对象数据,上下层之间互相传递不同粒度的数据,附加到对应线程的队列中。现有技术中,在C/C++中常用的对象数据的构建方法为:生产者逐一为对象数据中每个成员申请对应的内存空间,进而,利用申请的各个内存空间存储各个成员,由此构成完整的对象数据。然而,在构建对象数据的过程中,生产者往复多次为每个成员申请内存空间,将增加大量的内核开销,由此可能影响对象数据的传输效率。
技术实现思路
为了解决上述技术问题,本申请提供了一种对象数据的构建方法,能够一次性地为对象数据的所有成员分配内存,减少构建对象数据时需要耗费的内核开销。本申请实施例公开了如下技术方案:第一方面,本申请实施例提供了一种对象数据的构建方法,所述方法包括:定义内存分配模型;将对象数据包含的成员数量和各个成员的长度输入所述内存分配模型,以使所述内存分配模型根据所述成员数量和所述各个成员的长度,为所述对象数据分配内存空间;根据所述成员数量在所述内存空间中构建索引数据,所述索引数据用于记录所述各个成员在所述内存空间中的存储地址;将所述各个成员对应的存储地址写入所述索引数据。可选的,所述方法还包括:根据不同的业务,定义不同的所述对象数据的对外数据结构;所述对外数据结构中包括所述索引数据。可选的,所述对外数据结构包括:对象化索引列表或索引数组。可选的,所述内存分配模型引用外部分配函数,根据所述成员数量和所述各个成员的长度为所述对象数据分配内存空间;所述分配函数存在与其对应的回收函数;所述方法还包括:在所述对象数据使用完成后,利用所述回收函数根据所述内存空间的首地址回收所述对象数据。可选的,所述内存分配模型引用自定义的分配函数,根据所述成员数量和所述成员的长度为所述对象数据分配内存空间;所述分配函数存在与其对应的自定义的回收函数;所述方法还包括:在所述对象数据使用完成后,利用所述自定义的回收函数根据所述内存空间的首地址回收所述对象数据,所述自定义的回收函数包括:具有释放数据结构功能的函数,或者,具有删除功能的重载函数。第二方面,本申请实施例提供了一种对象数据的构建装置,所述装置包括:定义模块,用于定义内存分配模型;输入模块,用于将对象数据包含的成员数量和各个成员的长度输入所述内存分配模型,以使所述内存分配模型根据所述成员数量和所述各个成员的长度,为所述对象数据分配内存空间;构建模块,用于根据所述成员数量在所述内存空间中构建索引数据,所述索引数据用于记录所述各个成员在所述内存空间中的存储地址;传入模块,用于将所述各个成员对应的存储地址写入所述索引数据。可选的,所述装置还包括:对外数据结构定义模块,用于根据不同的业务,定义不同的所述对象数据的对外数据结构;所述对外数据结构中包括所述索引数据。可选的,所述对外数据结构包括:对象化索引列表或索引数组。可选的,所述内存分配模型引用外部分配函数,根据所述成员数量和所述各个成员的长度为所述对象数据分配内存空间;所述分配函数存在与其对应的回收函数;所述装置还包括:回收模块,用于在所述对象数据使用完成后,利用所述回收函数根据所述内存空间的首地址回收所述对象数据。可选的,所述内存分配模型引用自定义的分配函数,根据所述成员数量和所述成员的长度为所述对象数据分配内存空间;所述分配函数存在与其对应的自定义的回收函数;所述装置还包括:回收模块,用于在所述对象数据使用完成后,利用所述自定义的回收函数根据所述内存空间的首地址回收所述对象数据,所述自定义的回收函数包括:具有释放数据结构功能的函数,或者,具有删除功能的重载函数。由上述技术方案可以看出,本申请实施例提供的对象数据的构建方法中,先定义内存分配模型,然后将对象数据包含的成员数量和各个成员的长度输入该内存分配模型,相应地,该内存分配模型根据输入的成员数量以及成员的长度,为该对象数据分配内存空间;接着,根据对象数据包含的成员数量在内存空间中构建索引数据,该索引数据用于记录对象数据中各个成员在内存空间中的存储地址;最后,将各个成员对应的存储地址写入索引数据中。在上述技术方案中,内存分配模型能够根据对象数据包含的成员数量和各个成员的长度,一次性地为对象数据分配内存空间,相比于在构建对象数据的过程中逐一为各个成员分配内存空间,该方法能够大大减少需要耗费的内核开销;另外,内存分配模型根据对象数据包含的成员数量和各个成员的长度为对象数据分配内存空间,能够使得所分配的内存空间的容量以及持久性从一定程度上得到保障;当消费者向下级进行数据交换时,消费者仅传递索引数据部分即可,由此避免多次拷贝数据,提高了数据传输效率。附图说明为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1为本申请实施例提供的对象数据的构建方法的流程示意图;图2为本申请实施例提供的对象数据的构建装置的结构示意图。具体实施方式为了使本
的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。现有技术中,生产者通过逐一为对象数据中每个成员申请对应的内存空间来构建对象数据的方法,存在需要耗费大量的内核开销的问题。为了解决上述现有技术中存在的技术问题,本申请提供了一种对象数据的构建方法,能够一次性地为对象数据的所有成员分配内存,减少构建对象数据时需要耗费的内核开销。下面对本申请实施例提供的对象数据的构建方法的核心技术思路进行介绍:本申请实施例提供的对象数据的构建方法中,先定义内存分配模型,然后将对象数据包含的成员数量和各个成员的长度输入该内存分配模型,相应地,该内存分配模型根据输入的成员数量以及成员的长度,为该对象数据分配内存空间;接着,根据对象数据包含的成员数量在内存空间中构建索引数据,该索引数据用于记录对象数据中各个成员在内存空间中的存储地址;最后,将各个成员对应的存储地址写入索引数据中。在上述对本文档来自技高网
...

【技术保护点】
1.一种对象数据的构建方法,其特征在于,所述方法包括:定义内存分配模型;将对象数据包含的成员数量和各个成员的长度输入所述内存分配模型,以使所述内存分配模型根据所述成员数量和所述各个成员的长度,为所述对象数据分配内存空间;根据所述成员数量在所述内存空间中构建索引数据,所述索引数据用于记录所述各个成员在所述内存空间中的存储地址;将所述各个成员对应的存储地址写入所述索引数据。

【技术特征摘要】
1.一种对象数据的构建方法,其特征在于,所述方法包括:定义内存分配模型;将对象数据包含的成员数量和各个成员的长度输入所述内存分配模型,以使所述内存分配模型根据所述成员数量和所述各个成员的长度,为所述对象数据分配内存空间;根据所述成员数量在所述内存空间中构建索引数据,所述索引数据用于记录所述各个成员在所述内存空间中的存储地址;将所述各个成员对应的存储地址写入所述索引数据。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:根据不同的业务,定义不同的所述对象数据的对外数据结构;所述对外数据结构中包括所述索引数据。3.根据权利要求2所述的方法,其特征在于,所述对外数据结构包括:对象化索引列表或索引数组。4.根据权利要求1所述的方法,其特征在于,所述内存分配模型引用外部分配函数,根据所述成员数量和所述各个成员的长度为所述对象数据分配内存空间;所述外部分配函数存在与其对应的外部回收函数;所述方法还包括:在所述对象数据使用完成后,利用所述外部回收函数根据所述内存空间的首地址回收所述对象数据。5.根据权利要求1所述的方法,其特征在于,所述内存分配模型引用自定义的分配函数,根据所述成员数量和所述成员的长度为所述对象数据分配内存空间;所述分配函数存在与其对应的自定义的回收函数;所述方法还包括:在所述对象数据使用完成后,利用所述自定义的回收函数根据所述内存空间的首地址回收所述对象数据,所述自定义的回收函数包括:具有释放数据结构功能的函数,或者,具有删除功能的重载函数。6.一种对象数据的构建装置,其特征在于,所述装置包...

【专利技术属性】
技术研发人员:蔺昊天
申请(专利权)人:郑州云海信息技术有限公司
类型:发明
国别省市:河南,41

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1