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

配置数据获取方法、装置、电子设备、存储介质

文献发布时间:2024-04-18 19:58:53


配置数据获取方法、装置、电子设备、存储介质

技术领域

本发明涉及数据处理技术领域,特别涉及一种配置数据获取方法、装置、电子设备、存储介质。

背景技术

随着互联网技术的发展,程序的配置数据越来越多,配置数据通常保存在逗号分隔值(Comma-Separated Values,CSV)表格中。在获取配置数据时,需要先在内存中加载并解析CSV表格,再从解析出的数据中选取目标数据。但是CSV表格的读取效率较低,在数据量较大的情况下,解析全部配置数据耗时较长,而且会占用较多的内存空间,影响用户体验。

发明内容

本发明旨在至少解决现有技术中存在的技术问题之一。为此,本发明提出一种配置数据获取方法、装置、电子设备、存储介质,能够提高配置数据的获取效率,减少内存空间的占用,提高用户体验。

第一方面,本发明实施例提供了一种配置数据获取方法,包括:

获取数据获取指令,将第一文件的文件信息加载至内存中,其中,所述第一文件包括配置数据的集合,所述文件信息包括所述配置数据的数据索引;

基于所述数据获取指令从所述文件信息中确定目标索引,基于所述目标索引从所述第一文件中获取目标配置数据。

根据本发明的一些实施例,在所述获取数据获取指令之前,所述方法还包括:

获取第二文件,其中,所述第二文件包括多个配置项,每个所述配置项包括至少一条所述配置数据,所述第二文件与所述第一文件的文件格式不同;

反序列化所述第二文件得到所述配置数据的二进制序列;

基于序列化所述二进制序列得到多个数据块,基于所述数据块的集合生成所述第一文件,其中,每个所述数据块对应于一个所述配置项。

根据本发明的一些实施例,在所述基于所述数据块的集合生成所述第一文件之后,所述方法还包括:

确定每个所述数据块的块描述信息和偏移信息,其中,所述块描述信息用于指示所述数据块所对应的所述配置项,所述偏移信息用于指示所述数据块在所述第一文件中的位置;

基于所述块描述信息和所述偏移信息生成块索引,基于所述块索引的集合生成文件索引;

基于所述块描述信息的集合生成文件头;

将所述文件索引和所述文件头确定为所述第一文件的所述文件信息。

根据本发明的一些实施例,所述第一文件的数量为多个,所述基于所述数据获取指令从所述文件信息中确定目标索引,基于所述目标索引从所述第一文件中获取目标配置数据,包括:

基于所述数据获取指令,从加载于所述内存的各个所述文件头中确定目标文件头,将所述目标文件头所对应的所述第一文件确定为目标文件;

基于所述数据获取指令从所述目标文件的所述文件索引中确定目标块索引;

基于所述目标块索引从所述目标文件中获取所述目标配置数据。

根据本发明的一些实施例,所述基于所述数据块的集合生成所述第一文件,包括:

压缩所述数据块得到块压缩包;

基于所述块压缩包的集合得到所述第一文件。

根据本发明的一些实施例,所述基于所述目标索引从所述第一文件中获取目标配置数据,包括:

基于所述目标索引从所述第一文件中获取目标块压缩包;

解压所述目标块压缩包得到所述目标配置数据。

根据本发明的一些实施例,所述方法还包括:

获取文件生成类的调用,基于所述文件生成类生成第一代码集合、第二代码集合和第三代码集合;

当所述文件生成类的输入文件为所述第二文件,调用所述第一代码集合反序列化所述第二文件得到所述二进制序列,调用所述第二代码集合序列化所述二进制序列得到所述第一文件;

当所述文件生成类的输入文件为所述第一文件,调用所述第三代码集合基于所述数据获取指令从所述第一文件中获取所述目标配置数据。

根据本发明的一些实施例,在所述调用文件生成类之前,所述方法还包括:

基于待处理文件调用文件管理类,其中,所述待处理文件为所述第一文件或者所述第二文件;

通过所述文件管理类基于所述待处理文件调用所述文件生成类。

第二方面,本发明实施例提供了一种代码生成方法,应用于人机交互设备,所述方法包括:

获取用户在代码编辑器输入的文件生成类的调用代码;

响应于用户在代码编辑器点击的触发按键,在所述文件生成类的代码区域生成第一代码集合、第二代码集合和第三代码集合,其中,所述第一代码集合用于反序列化第二文件得到二进制序列,所述第二代码集合用于序列化所述二进制序列得到第一文件,所述第三代码集合用于基于数据获取指令从所述第一文件中获取配置数据,所述第一文件和所述第二文件为配置数据的集合,所述第一文件和所述第二文件的文件格式不同。

根据本发明的一些实施例,所述方法还包括:

获取用户输入的所述数据获取指令,调用所述第三代码集合将第一文件的文件信息加载至内存中,其中,所述文件信息包括所述配置数据的数据索引;

基于所述数据获取指令从所述文件信息中确定目标索引,基于所述目标索引从所述第一文件中获取并显示目标配置数据。

第三方面,本发明实施例提供了一种配置数据获取装置,包括:

加载模块,被配置为获取数据获取指令,将第一文件的文件信息加载至内存中,其中,所述第一文件包括配置数据的集合,所述文件信息包括所述配置数据的数据索引;

数据获取模块,被配置为基于所述数据获取指令从所述文件信息中确定目标索引,基于所述目标索引从所述第一文件中获取目标配置数据。

根据本发明的一些实施例,配置数据获取装置还包括:

文件获取模块,被配置为获取第二文件,其中,所述第二文件包括多个配置项,每个所述配置项包括至少一条所述配置数据,所述第二文件与所述第一文件的文件格式不同;

第一反序列化模块,被配置为反序列化所述第二文件得到所述配置数据的二进制序列;

文件生成模块,被配置为基于序列化所述二进制序列得到多个数据块,基于所述数据块的集合生成所述第一文件,其中,每个所述数据块对应于一个所述配置项。

根据本发明的一些实施例,配置数据获取装置还包括:

块信息获取模块,被配置为确定每个所述数据块的块描述信息和偏移信息,其中,所述块描述信息用于指示所述数据块所对应的所述配置项,所述偏移信息用于指示所述数据块在所述第一文件中的位置;

索引生成模块,被配置为基于所述块描述信息和所述偏移信息生成块索引,基于所述块索引的集合生成文件索引;

文件头生成模块,被配置为基于所述块描述信息的集合生成文件头;

文件信息生成模块,被配置为将所述文件索引和所述文件头确定为所述第一文件的所述文件信息。

根据本发明的一些实施例,所述第一文件的数量为多个,所述数据获取模块被进一步配置为:

文件确定模块,被配置为基于所述数据获取指令,从加载于所述内存的各个所述文件头中确定目标文件头,将所述目标文件头所对应的所述第一文件确定为目标文件;

块索引确定模块,被配置为基于所述数据获取指令从所述目标文件的所述文件索引中确定目标块索引;

目标数据获取模块,被配置为基于所述目标块索引从所述目标文件中获取所述目标配置数据。

根据本发明的一些实施例,文件生成模块被进一步配置为:

压缩模块,被配置为压缩所述数据块得到块压缩包;

压缩包组合模块,被配置为基于所述块压缩包的集合得到所述第一文件。

根据本发明的一些实施例,所述数据获取模块被进一步配置为:

压缩包获取模块,被配置为基于所述目标索引从所述第一文件中获取目标块压缩包;

解压模块,被配置为解压所述目标块压缩包得到所述目标配置数据。

根据本发明的一些实施例,配置数据获取装置还包括:

第一类调用模块,被配置为获取文件生成类的调用,基于所述文件生成类生成第一代码集合、第二代码集合和第三代码集合;

第一调用模块,被配置为当所述文件生成类的输入文件为所述第二文件,调用所述第一代码集合反序列化所述第二文件得到所述二进制序列,调用所述第二代码集合序列化所述二进制序列得到所述第一文件;

第二调用模块,被配置为当所述文件生成类的输入文件为所述第一文件,调用所述第三代码集合基于所述数据获取指令从所述第一文件中获取所述目标配置数据。

根据本发明的一些实施例,配置数据获取装置还包括:

第二类调用模块,被配置为基于待处理文件调用文件管理类,其中,所述待处理文件为所述第一文件或者所述第二文件;

第三类调用模块,被配置为通过所述文件管理类基于所述待处理文件调用所述文件生成类。

第三方面,本发明实施例提供了一种电子设备,包括少一个控制处理器和用于与所述至少一个控制处理器通信连接的存储器;所述存储器存储有可被所述至少一个控制处理器执行的指令,所述指令被所述至少一个控制处理器执行,以使所述至少一个控制处理器能够执行如上述第一方面所述的配置数据获取方法。

第四方面,本发明实施例提供了一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令用于执行如上述第一方面所述的配置数据获取方法。

根据本发明实施例的方法,获取数据获取指令,将第一文件的文件信息加载至内存中,其中,所述第一文件包括配置数据的集合,所述文件信息包括所述配置数据的数据索引;基于所述数据获取指令从所述文件信息中确定目标索引,基于所述目标索引从所述第一文件中获取目标配置数据。如此,在获取配置数据时,只需要在内存中加载数据索引,确定目标索引后只需要获取目标配置数据,有效减少了对内存的空间占用,提高配置数据的获取效率。

附图说明

图1是本发明一个实施例配置数据获取方法的处理过程示意图;

图2是本发明一个实施例提供的配置数据获取方法的流程图;

图3是本发明一个实施例提供的第一文件的示例图;

图4是本发明一个实施例提供的文件转换的处理过程示意图;

图5是本发明一个实施例提供的代码编辑界面的示意图;

图6是本发明一个实施例提供的应用于游戏领域的配置数据获取方法的示例流程图;

图7是本发明一个实施例提供的代码生成方法的流程图;

图8是本发明一个实施例提供的配置数据获取装置的结构示意图;

图9是本发明另一个实施例提供的电子设备的结构图。

具体实施方式

下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。

在本发明的描述中,需要理解的是,涉及到方位描述,例如上、下、前、后、左、右等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。

在本发明的描述中,若干的含义是一个或者多个,多个的含义是两个以上,大于、小于、超过等理解为不包括本数,以上、以下、以内等理解为包括本数。如果有描述到第一、第二只是用于区分技术特征为目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量或者隐含指明所指示的技术特征的先后关系。

本发明的描述中,除非另有明确的限定,设置、安装、连接等词语应做广义理解,所属技术领域技术人员可以结合技术方案的具体内容合理确定上述词语在本发明中的具体含义。

首先,对发明实施例中的相关术语进行解释:

Lz4压缩算法:Lz4压缩算法是由Yann Colet在2011年设计实现的,Lz4属于Lz77系列的压缩算法。Lz77严格意义上来说不是一种算法,而是一种编码理论,它只定义了原理,并没有定义如何实现。

懒加载:懒加载(Lazy Loading)是一种延迟加载技术,指在需要使用某个对象或数据时才进行加载,而不是在系统启动或加载时就立即加载。懒加载可以在一定程度上提高系统的性能和资源利用率。

需要说明的是,随着互联网技术的发展,程序的配置数据越来越多,配置数据通常保存在CSV表格中。在获取配置数据时,需要先在内存中加载并解析CSV表格,再从解析出的数据中选取目标数据。但是CSV表格的读取效率较低,在数据量较大的情况下,解析全部配置数据耗时较长,而且会占用较多的内存空间,影响用户体验。

因此,本发明实施例提供了一种配置数据获取方法,获取数据获取指令,将第一文件的文件信息加载至内存中,其中,所述第一文件包括配置数据的集合,所述文件信息包括所述配置数据的数据索引;基于所述数据获取指令从所述文件信息中确定目标索引,基于所述目标索引从所述第一文件中获取目标配置数据。如此,在获取配置数据时,只需要在内存中加载数据索引,确定目标索引后只需要获取目标配置数据,有效减少了对内存的空间占用,提高配置数据的获取效率。

在本发明中,提供了一种配置数据获取方法、装置、电子设备、计算机可读存储介质,在下面的实施例中逐一进行详细说明。

参照图1,图1为本发明实施例提供的一种配置数据获取方法的处理过程示意图,如图1所示,用户在电子设备中输入数据获取指令来获取目标配置数据,电子设备将第一文件的文件信息加载到内存中,文件信息包括第一文件中各条配置数据所对应的数据索引,根据数据获取指令从文件信息中确定出目标索引后,基于目标索引从第一文件中仅获取出目标配置数据。

参照图2,图2为本发明实施例提供的一种配置数据获取方法的流程图,该配置数据获取方法包括但不限于有以下步骤:

步骤21,获取数据获取指令,将第一文件的文件信息加载至内存中,其中,第一文件包括配置数据的集合,文件信息包括配置数据的数据索引。

具体地,数据获取指令可以是针对目标配置数据的需求信息,即在数据获取指令中描述有目标配置数据的匹配条件,能够通过数据获取指令表征目标配置数据的需求即可。

在实际应用中,数据获取指令可以是通过输入需求文档生成,例如向电子设备输入需求文档,在需求文档中记载所需要的配置数据项,电子设备响应于需求文档,从中确定各个配置数据项从而生成数据获取指令。

在实际应用中,数据获取指令还可以通过程序操作自动生成,例如在游戏场景中,更换角色的装备后,需要根据新装备的装备属性更新角色的配置数据,从而触发数据获取指令以获取该角色所对应的第一文件,并从第一文件中获取与装备相关的目标配置数据后进行数据更新。

具体地,第一文件包括文件信息和文件数据,其中,文件数据为配置数据的集合,文件信息记载着配置数据所对应的数据索引,通过数据索引能够确定配置数据在第一文件中所记载的位置。数据索引可以是序列化存储的数据的偏移信息,或者是位置描述信息,能够根据数据索引从第一文件中读取相应的目标数据即可。

在实际应用中,文件数据可以是多条独立的配置数据的集合,多条独立的配置数据在第一文件中以数据序列的形式保存,而数据索引可以是配置数据在数据序列中的偏移信息,通过偏移信息能够确定配置数据的存储位置即可。

在实际应用中,文件数据也可以是多个数据块组成的集合,每个数据块包括多条同一类型的配置数据,例如,参照图3,在游戏场景中,通过角色信息数据块保存与角色信息相关的多条配置数据,通过装备信息数据块保存与装备信息相关的多条配置数据,通过能力值数据块保存与能力值相关的多条配置数据。在这种情况下,文件索引可以是数据块的块索引,即索引记载有每个数据块的偏移信息,通过目标索引能够从第一文件中获取目标数据块,进而从目标数据块中解析出目标配置信息。

需要说明的是,虽然第一文件包括文件信息和文件数据,本实施例在获取到数据获取指令后,仅将第一文件的文件信息加载到内存中,由于文件信息为数据索引,而并非具体的数据,相比起完整的数据在数据量上有明显的减小,如此,在内存中加载文件信息,能够有效减少对内存的空间占用。

步骤22,基于数据获取指令从文件信息中确定目标索引,基于目标索引从第一文件中获取目标配置数据。

需要说明的是,根据上述描述,文件信息中记载着配置数据的索引,而数据获取指令用于表征目标配置数据的需求,即数据获取指令可以记载有需求信息,因此能够根据数据获取指令从文件信息中匹配出目标配置数据所对应的目标索引,在内存中只需要进行小数据量的索引匹配,无需执行大数据量的数据匹配,能够有效提高获取数据的效率。

在实际应用中,参照图1,内存中加载文件索引得到块索引1、块索引2和块索引3,基于数据获取指令确定目标索引为块索引3后,从第一文件中记载的数据块中获取数据块3,对数据块3解析出目标配置数据。

例如,参照图3所示,第一文件为角色文件A,文件信息记载的索引包括“角色信息-偏移1”、“装备信息-偏移2”和“能力值-偏移3”,当数据获取指令用于获取能力值,则从中确定的目标索引为“偏移3”,从而根据“偏移3”从第一文件中读取出与能力值相关的目标配置数据。

本发明实施例提供的配置数据获取方法中,基于获取数据获取指令,将第一文件的文件信息加载至内存中,其中,所述第一文件包括配置数据的集合,所述文件信息包括所述配置数据的数据索引;基于所述数据获取指令从所述文件信息中确定目标索引,基于所述目标索引从所述第一文件中获取目标配置数据。如此,在获取配置数据时,只需要在内存中加载数据索引,确定目标索引后只需要获取目标配置数据,有效减少了对内存的空间占用,提高配置数据的获取效率。

在本发明实施例的一种实现方式中,在执行步骤21之前,本发明所提供的配置数据获取方法还可以包括如下步骤:

获取第二文件,其中,第二文件包括多个配置项,每个配置项包括至少一条配置数据,第二文件与第一文件的文件格式不同;反序列化第二文件得到配置数据的二进制序列;基于序列化二进制序列得到多个数据块,基于数据块的集合生成第一文件,其中,每个数据块对应于一个配置项。

具体地,第一文件和第二文件的格式不同,第二文件能够用于转换成第一文件,第二文件可以是便于开发人员进行数据编辑的文件格式,第一文件能够具备文件信息和文件数据,便于执行本实施例的配置数据获取方法。

在实际应用中,第二文件可以是CSV表格,通过CSV表格能够更好地编辑每个配置项中的配置数据,每个配置项中可以包括一条或者多条配置数据。由于CSV表格的读取效率低,若通过CSV表格获取配置数据,需要先完整地解析到内存中,不仅占用大量的内存空间,还需要遍历大量的配置数据以确定目标配置数据。如此,本实施例将CSV表格转换格式不同的第一文件,其中,第一文件由上述所述的文件信息和文件数据组成,由于文件信息和文件数据属于不同的部分,因此在进行数据索引时能够仅加载文件信息,相比起CSV表格在读取效率、内存空间占用上有显著的区别。

需要说明的是,由于第一文件和第二文件的格式不同,第一文件的格式可以是Zbund le格式,为了实现文件格式的转换,需要先将文件中数据解析出来,如此,以第二文件为CSV表格为例,本实施例在获取到CSV表格后,先对CSV表格进行反序列化得到其中的配置数据的二进制序列,二进制序列中每个元素为CSV表格中的每一条配置数据,再基于二进制序列以第一文件中的分类格式序列化得到多个数据块,从而得到第一文件。

在实际应用中,归属于同一个配置项的配置数据通常具有关联性,因此在获取目标配置数据时,通常也需要将获取整个配置项所对应的数据,确保该配置项的数据完整性。

例如,参照图4所示,第二文件包括3个配置项,分别为角色信息、装备信息和能力值,其中,角色信息中包括a条数据,装备信息中包括b条数据,能力值中包括c条数据,a、b和c均为自然数,且可以相等也可以不相等。在获取到第二文件后,对第二文件进行反序列,得到3个二进制序列,第一个二进制序列包括a条角色信息,第二个二进制序列包括b条装备信息,第三个二进制序列包括c条能力值,对第一个二进制序列进行序列化得到角色信息数据块,对第二个二进制序列进行序列化得到装备信息数据块,对第三个二进制序列进行序列化得到能力值数据块,从而得到第一文件中的3个数据块。

值得注意的是,本实施例在进行文件转换时采用二进制序列,能够使得第一文件中的配置数据以二进制的形式进行保存,相比起字符串的形式,二进制形式能够进一步减少数据量,使得获取出的目标配置数据占用更少的内存,提高数据获取效率,减少内存占用。

在本发明实施例的一种实现方式中,在基于数据块的集合生成第一文件之后,方法还包括但不限于有以下步骤:

确定每个数据块的块描述信息和偏移信息,其中,块描述信息用于指示数据块所对应的配置项,偏移信息用于指示数据块在第一文件中的位置;基于块描述信息和偏移信息生成块索引,基于块索引的集合生成文件索引;基于块描述信息的集合生成文件头;将文件索引和文件头确定为第一文件的文件信息。

具体地,本实施例的第一文件包括文件头、文件索引和块数据,其中文件头用于描述第一文件中的内容,通过文件索引能够对文件中的块数据进行定位,通过块数据存储每个配置项对应的配置数据,通过采用本实施例的ZBundle文件,能够将文件描述、索引和数据区分为三个不同的部分,在进行加载时能够独立加载其中一个部分,例如本实施例在获取到数据获取指令时,仅将文件索引加载到内存中进行数据匹配,在匹配成功后,仅从第一文件获取目标配置数据,从而解决了配置数据获取效率低、内存占用大的问题。

在实际应用中,块描述信息可以直接采用配置项的描述,也可以基于配置项进行语义分析以从系统中预置的标准名词中确定,在将块描述信息的集合生成文件头后,能够确保文件头能够对第一文件所包含的数据类型进行描述即可。

例如,参考图4所示,第二文件中的配置项为“角色信息”、“装备信息”和“能力值”,则块描述信息也可以直接采用“角色信息”、“装备信息”和“能力值”。

又如,当第二文件中的配置项为“角色等级”、“头盔”和“能力值”,可以通过对“角色等级”进行语义识别确定为“角色信息”,进而采用“角色信息”这一标准的块描述信息;通过“头盔”进行语义识别确定为装备的一种,进而采用“装备信息”这一标准的块描述信息;“能力值”为预设的标准的块描述信息,因此可以直接采用。

具体地,基于上述实施例的描述,第二文件可以是CSV表格,因此反序列化得到的二进制数据可以是以行列顺序导出得到的,序列化二进制数据得到多个数据块之后,每个数据块也是按照顺序排列的,如此,序列化得到的数据块在第一文件中按照顺序进行保存,能够通过偏移信息实现定位。

在实际应用中,偏移信息可以是相对位置的描述,例如每个数据块相对于初始存储位置的偏移,或者基于某个参考位置的偏移,在此不多做限定。

例如,参考图4,数据块包括角色信息数据块、装备信息数据块和能力值数据块,而角色信息的数量为a,装备信息的数量为b,能力值的数量为c,因此可以确定第1至a个存储空间被角色信息数据块占用,第a+1至第a+1+b个存储空间被装备信息数据块占用,第a+b+2至第a+b+2+c个存储空间被能力值数据块占用,如此,偏移1可以是0,即表征角色信息数据块的首地址为块数据的起始位置;偏移2可以是a+1,即表征装备信息数据块的首地址为块数据的第a+2个地址;偏移3可以是a+b+1,即表征能力值数据块的首地址为块数据的第a+b+2个地址。当然,也可以通过其他方式进行表征,本实施例对此不多做限定。

具体地,文件索引包括每个数据块的块索引,本实施例需要将文件索引加载到内存中进行目标配置数据的定位,因此需要在块索引中引入块描述信息和偏移信息,通过块描述信息确定目标数据块,从而基于数据获取指令能够匹配出目标索引。

在本发明实施例的一种实现方式中,第一文件的数量为多个,步骤22还包括但不限于有以下步骤:

基于数据获取指令,从加载于内存的各个文件头中确定目标文件头,将目标文件头所对应的第一文件确定为目标文件;基于数据获取指令从目标文件的文件索引中确定目标块索引;基于目标块索引从目标文件中获取目标配置数据。

需要说明的是,每个程序中第一文件的数量可以有多个,例如以游戏场景为例,为每个角色生成多个第一文件,在一个第一文件中记载该角色的角色信息、装备信息和能力值,另一个第一文件中记载该角色的操作记录、登录记录等。

具体地,在获取到数据获取指令后,在内存中加载各个第一文件的文件头,由于文件头记载有第一文件中每个数据块的块描述信息,因此能够根据文件头进行信息匹配,从而确定目标文件头,进而将目标文件头对应的第一文件确定为目标文件。

具体地,在确定目标文件后,进一步基于数据获取指令从目标文件的文件索引中确定目标块索引,进而基于目标块索引获取目标配置数据,从而实现文件、索引、数据的依次匹配。

例如,以游戏场景为例,参照图4,数据获取指令为“角色A的角色信息”,数据库中保存着角色A的多个第一文件,在第一文件1中记载该角色的角色信息、装备信息和能力值,第一文件2中记载该角色的操作记录、登录记录。在获取到数据获取指令后,将第一文件1和第一文件2的文件头和文件索引同时加载到内存中,通过文件头的匹配确定第一文件1为目标文件,再从第一文件1的文件索引确定“角色信息-偏移1”为目标块索引,基于“角色信息-偏移1”从块数据中获取角色信息数据块,得到目标配置数据。

在本发明实施例的一种实现方式中,基于数据块的集合生成第一文件,还包括但不限于有以下步骤:

压缩数据块得到块压缩包;基于块压缩包的集合得到第一文件。

需要说明的是,通过上述实施例的描述,配置数据被反序列化成二进制数据,虽然在数据规模上得到了一定的缩小,但是数据块中的数据数量较多,本实施例进一步将数据块进行压缩得到块压缩包,在第一文件中以块压缩包的形式保存数据,减小根据目标索引读取目标压缩块的数据量,提高数据获取的效率。

在实际应用中,对数据块进行压缩可以采用Lz4压缩算法,能够进一步提高压缩效率,提高压缩包的读取效率。

例如,参照图4,在根据上述实施例获取到角色信息数据块、装备信息数据块和能力值数据块后,对每个数据块依次进行Lz4压缩,从而得到角色信息压缩包、装备信息压缩包和能力值压缩包,将上述3个压缩包作为文件数据保存在第一文件中。

在本发明实施例的一种实现方式中,步骤22还包括但不限于有以下步骤:

基于目标索引从第一文件中获取目标块压缩包;解压目标块压缩包得到目标配置数据。

具体地,根据上述实施例的描述,各个数据块已经根据Lz4压缩算法得到块压缩包,当确定目标索引后,从第一文件中仅获取对应的目标块压缩包,并不对其他的压缩包进行获取,减少从文件中解析出的数据量。

在实际应用中,可以采用懒加载的方式进行目标块压缩包的加载,在未确定目标索引之前不对数据进行加载,在确定目标索引后,根据目标索引仅加载目标块压缩包,对目标块压缩包进行解压得到目标配置数据,有效提高数据获取的效率,减少不必要的数据解析。

在本发明实施例的一种实现方式中,方法还包括但不限于有以下步骤:

获取文件生成类的调用,基于文件生成类生成第一代码集合、第二代码集合和第三代码集合;当文件生成类的输入文件为第二文件,调用第一代码集合反序列化第二文件得到二进制序列,调用第二代码集合序列化二进制序列得到第一文件;当文件生成类的输入文件为第一文件,调用第三代码集合基于数据获取指令从第一文件中获取目标配置数据。

具体地,文件生成类可以是针对第一文件的调用类,并通过泛型的方式实现对不同的第一文件的操作进行封装,每当调用文件生成类,可以对指定的第一文件进行加载、查询和解析数据,使得第一文件的使用更加灵活和通用。

在实际应用中,文件生成类可以是针对Zbundle文件设置的ZbundleTable类,在编辑器中自动调用时并生成Wrap代码,Wrap代码中包括三种代码集合,使得开发人员无需手写大量的重复性代码,提高开发效率。

例如,参照图5,在编辑器中生成第一代码集合、第二代码集合和第三代码集合,第一代码集合用于将CSV表格进行反序列化得到二进制序列,第二代码集合用于序列化二进制序列得到Zbundle文件,第三代码集合用于反序列化Zbundle文件得到目标配置数据。

需要说明的是,配置文件的首次引入可以是CSV表格,在调用文件生成类时识别到文件各位为CSV表格,则自动调用第一代码集合和第二代码集合进行数据的序列化和文件格式的转换,将配置文件以Zbundle格式保存在电子设备中,下次使用时可以直接调用Zbundle文件,省去对第二文件的转换和解析,直接从第一文件进行索引匹配,提高数据获取的效率。

在本发明实施例的一种实现方式中,在调用文件生成类之前,方法还包括但不限于有以下步骤:

基于待处理文件调用文件管理类,其中,待处理文件为第一文件或者第二文件;通过文件管理类基于待处理文件调用文件生成类。

需要说明的是,文件生成类能够实现代码自动扩展,本实施例进一步设置文件管理类与文件生成类进行交互,例如,针对文件生成类ZbundleTable类设置文件管理类ZbundleTableMgr类,以开发人员可以通过ZbundleTableMgr类对ZbundleTable类进行调用,将待处理文件作为ZbundleTableMgr类的参数,从而调用ZbundleTable类基于待处理文件进行实例的生成和文件处理。通过文件管理类能够有效地解耦具体的ZbundleTable类实例,有效简化配置数据获取的代码。

例如,当待处理文件为第一文件,将第一文件设置为文件管理类的输入,调用文件生成类生成三种代码集合后,自动调用第三代码集合对第一文件进行反序列化得到目标配置数据。

下述结合附图6,以本发明提供的配置数据获取方法在游戏场景中的应用为例,对所述配置数据获取方法进行进一步说明。其中,图6示出了本发明实施例提供的一种应用于游戏场景中的配置数据获取方法的流程图,在本示例中,

具体包括以下步骤:

步骤61,调用ZbundleTableMgr类并导入CSV文件,调用ZbundleTable生成wrap代码。

其中,ZbundleTableMgr类为上述文件管理类,ZbundleTable类为上述文件生成类,CSV文件为上述第二文件,wrap代码为上述第一代码集合、第二代码集合和第三代码集合,CSV文件中记载着游戏配置数据。

步骤62,通过wrap代码将CSV文件反序列化出二进制序列,对二进制序列进行序列化得到块数据,对块数据进行Lz4压缩得到块压缩包,确定每个块压缩包的偏移信息,结合配置项生成文件头,基于文件头、文件索引和块数据生成Zbundle文件。

其中,Zbundle文件为上述第一文件。

步骤63,当获取到游戏配置数据的数据获取指令,根据数据获取指令和多个Zbundle文件的文件头确定目标Zbundle文件,将目标Zbundle文件的文件索引加载到内存中,从中确定目标索引。

步骤64,基于懒加载技术,根据目标索引从目标Zbundle文件中获取目标压缩块,解压目标压缩块得到目标配置数据。

本发明实施例提供的应用于游戏场景的配置数据获取方法中,能够将CSV文件转换为Zbundle文件,基于获取数据获取指令,将Zbundle文件的文件索引加载至内存中,基于所述数据获取指令从所述文件索引中确定目标索引,基于所述目标索引从所述Zbundle件中获取目标配置数据。如此,在获取配置数据时,只需要在内存中加载数据索引,确定目标索引后只需要获取目标配置数据,有效减少了对内存的空间占用,提高配置数据的获取效率。

另外,本发明实施例提供了还一种代码生成方法,应用于人机交互设备,参照图7,所述方法包括但不限于有以下步骤:

步骤71,获取用户在代码编辑器输入的文件生成类的调用代码;

步骤72,响应于用户在代码编辑器点击的触发按键,在文件生成类的代码区域生成第一代码集合、第二代码集合和第三代码集合,其中,第一代码集合用于反序列化第二文件得到二进制序列,第二代码集合用于序列化二进制序列得到第一文件,第三代码集合用于基于数据获取指令从第一文件中获取配置数据,第一文件和第二文件为配置数据的集合,第一文件和第二文件的文件格式不同。

需要说明的是,用户在代码编辑器生成调用代码的方法可以参考图5所示实施例的描述,区别在于本实施例在人机交互界面中通过触发按键点击触发,在此不重复赘述。

本发明实施例提供的代码生成方法中,基于获取数据获取指令,将第一文件的文件信息加载至内存中,其中,所述第一文件包括配置数据的集合,所述文件信息包括所述配置数据的数据索引;基于所述数据获取指令从所述文件信息中确定目标索引,基于所述目标索引从所述第一文件中获取目标配置数据。如此,在获取配置数据时,只需要在内存中加载数据索引,确定目标索引后只需要获取目标配置数据,有效减少了对内存的空间占用,提高配置数据的获取效率。

在本发明实施例的一种实现方式中,方法还包括:

获取用户输入的数据获取指令,调用第三代码集合将第一文件的文件信息加载至内存中,其中,文件信息包括配置数据的数据索引;

基于数据获取指令从文件信息中确定目标索引,基于目标索引从第一文件中获取并显示目标配置数据。

需要说明的是,在人机交互设备中获取目标配置数据的流程可以参考上述图2所示实施例的描述,在此不重复赘述。

与上述方法实施例相对应,本发明还提供了配置数据获取装置的实施例,图8示出了本发明一个实施例的配置数据获取装置的结构示意图。如图8所示,该配置数据获取装置包括:

加载模块801,被配置为获取数据获取指令,将第一文件的文件信息加载至内存中,其中,第一文件包括配置数据的集合,文件信息包括配置数据的数据索引;

数据获取模块802,被配置为基于数据获取指令从文件信息中确定目标索引,基于目标索引从第一文件中获取目标配置数据。

在本发明实施例的一种实现方式中,配置数据获取装置还包括:

文件获取模块,被配置为获取第二文件,其中,第二文件包括多个配置项,每个配置项包括至少一条配置数据,第二文件与第一文件的文件格式不同;

第一反序列化模块,被配置为反序列化第二文件得到配置数据的二进制序列;

文件生成模块,被配置为基于序列化二进制序列得到多个数据块,基于数据块的集合生成第一文件,其中,每个数据块对应于一个配置项。

在本发明实施例的一种实现方式中,配置数据获取装置还包括:

块信息获取模块,被配置为确定每个数据块的块描述信息和偏移信息,其中,块描述信息用于指示数据块所对应的配置项,偏移信息用于指示数据块在第一文件中的位置;

索引生成模块,被配置为基于块描述信息和偏移信息生成块索引,基于块索引的集合生成文件索引;

文件头生成模块,被配置为基于块描述信息的集合生成文件头;

文件信息生成模块,被配置为将文件索引和文件头确定为第一文件的文件信息。

在本发明实施例的一种实现方式中,第一文件的数量为多个,数据获取模块802被进一步配置为:

文件确定模块,被配置为基于数据获取指令,从加载于内存的各个文件头中确定目标文件头,将目标文件头所对应的第一文件确定为目标文件;

块索引确定模块,被配置为基于数据获取指令从目标文件的文件索引中确定目标块索引;

目标数据获取模块802,被配置为基于目标块索引从目标文件中获取目标配置数据。

在本发明实施例的一种实现方式中,文件生成模块被进一步配置为:

压缩模块,被配置为压缩数据块得到块压缩包;

压缩包组合模块,被配置为基于块压缩包的集合得到第一文件。

在本发明实施例的一种实现方式中,数据获取模块802被进一步配置为:

压缩包获取模块,被配置为基于目标索引从第一文件中获取目标块压缩包;

解压模块,被配置为解压目标块压缩包得到目标配置数据。

在本发明实施例的一种实现方式中,配置数据获取装置还包括:

第一类调用模块,被配置为获取文件生成类的调用,基于文件生成类生成第一代码集合、第二代码集合和第三代码集合;

第一调用模块,被配置为当文件生成类的输入文件为第二文件,调用第一代码集合反序列化第二文件得到二进制序列,调用第二代码集合序列化二进制序列得到第一文件;

第二调用模块,被配置为当文件生成类的输入文件为第一文件,调用第三代码集合基于数据获取指令从第一文件中获取目标配置数据。

在本发明实施例的一种实现方式中,配置数据获取装置还包括:

第二类调用模块,被配置为基于待处理文件调用文件管理类,其中,待处理文件为第一文件或者第二文件;

第三类调用模块,被配置为通过文件管理类基于待处理文件调用文件生成类。

本发明实施例提供的配置数据获取装置中,获取数据获取指令,将第一文件的文件信息加载至内存中,其中,所述第一文件包括配置数据的集合,所述文件信息包括所述配置数据的数据索引;基于所述数据获取指令从所述文件信息中确定目标索引,基于所述目标索引从所述第一文件中获取目标配置数据。如此,在获取配置数据时,只需要在内存中加载数据索引,确定目标索引后只需要获取目标配置数据,有效减少了对内存的空间占用,提高配置数据的获取效率。

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

如图9所示,图9示出了根据本发明一实施例提供的一种电子设备900的结构框图。该电子设备900的部件包括但不限于存储器910和处理器920。处理器920与存储器910通过总线930相连接,数据库950用于保存数据。

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

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

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

其中,处理器920用于执行所述对象处理方法的计算机可执行指令。

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

本发明实施例还提供了一种存储介质,存储介质为计算机可读存储介质,该存储介质存储有计算机程序,该计算机程序被处理器执行时实现上述配置数据获取方法。

存储器作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序以及非暂态性计算机可执行程序。此外,存储器可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施方式中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至该处理器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,实现了以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。

本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统可以被实施为软件、固件、硬件及其适当的组合。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包括计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。

以上是对本发明的较佳实施进行了具体说明,但本发明并不局限于上述实施方式,熟悉本领域的技术人员在不违背本发明精神的共享条件下还可作出种种等同的变形或替换,这些等同的变形或替换均包括在本发明权利要求所限定的范围内。

相关技术
  • 测量配置的方法、装置、电子设备和存储介质
  • 商品活动规则的配置方法、装置、电子设备及存储介质
  • 电子设备的显示控制方法、装置、电子设备和存储介质
  • 电子设备控制方法及装置、电子设备及存储介质
  • 数据分布存储方法、装置、存储介质及电子设备
  • 资源配置数据获取方法、装置、电子设备及存储介质
  • 资源配置数据获取方法、装置、电子设备及存储介质
技术分类

06120116509603