一种配置文件的加载方法和装置制造方法及图纸

技术编号:24409121 阅读:30 留言:0更新日期:2020-06-06 08:23
本申请公开了一种配置文件的加载方法和装置,该方法包括:根据目标应用的配置文件编辑得到多个数据表,多个数据表中包括指定的列名和多个数据类型,多个数据类型包括以下至少一种:基础数据类型、基于IDL自定义得到的自定义数据类型以及由基础数据类型和自定义数据类型组合嵌套生成的复杂数据类型;根据指定的列名和多个数据类型,生成指定语言的类;根据多个数据表中包括的不同数据类型的数据,生成多个二进制文件,多个二进制文件中包括二进制结构化数值数据;在启动目标应用时,根据指定语言的类和多个二进制文件加载配置文件。本申请实施例在加载配置文件时,可以减少配置文件的加载时长,快速启动应用。

A loading method and device of configuration file

【技术实现步骤摘要】
一种配置文件的加载方法和装置
本申请涉及计算机
,尤其涉及一种配置文件的加载方法和装置。
技术介绍
随着科学技术的发展,出现了各种各样的应用,例如,游戏应用,购物应用,聊天应用等,这些应用通常都有对应的配置文件,在启动这些应用时,往往需要加载对应的配置文件。一般地,配置文件中通常包括复杂的数据结构,在启动应用并加载应用的配置文件时,需要解析这些复杂的数据结构,而复杂数据结构的解析过程通常需要花费较长的时间,这样,就会导致配置文件的加载时间较长,进而导致应用的启动时间较长。
技术实现思路
本申请实施例提供一种配置文件的加载方法和装置,用于解决在加载应用的配置文件时,加载时间较长的问题。为了解决上述技术问题,本申请是这样实现的:本申请实施例提供一种配置文件的加载方法,包括:根据目标应用的配置文件编辑得到多个数据表,所述多个数据表中包括指定的列名和多个数据类型,所述多个数据类型包括以下至少一种:基础数据类型、基于IDL自定义得到的自定义数据类型以及由所述基础数据类型和所述自定义数据类型组合嵌套生成的复杂数据类型;根据所述指定的列名和多个数据类型,生成指定语言的类;根据所述多个数据表中包括的不同数据类型的数据,生成多个二进制文件,所述多个二进制文件中包括二进制结构化数值数据;在启动所述目标应用时,根据所述指定语言的类和所述多个二进制文件加载所述配置文件。本申请实施例提供一种配置文件的加载装置,包括:编辑单元,根据目标应用的配置文件编辑得到多个数据表,所述多个数据表中包括指定的列名和多个数据类型,所述多个数据类型包括以下至少一种:基础数据类型、基于IDL自定义得到的自定义数据类型以及由所述基础数据类型和所述自定义数据类型组合嵌套生成的复杂数据类型;第一生成单元,根据所述指定的列名和多个数据类型,生成指定语言的类;第二生成单元,根据所述多个数据表中包括的不同数据类型的数据,生成多个二进制文件,所述多个二进制文件中包括二进制结构化数值数据;加载单元,在启动所述目标应用时,根据所述指定语言的类和所述多个二进制文件加载所述配置文件。本申请实施例提供一种电子设备,包括:处理器;以及被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行以下操作:根据目标应用的配置文件编辑得到多个数据表,所述多个数据表中包括指定的列名和多个数据类型,所述多个数据类型包括以下至少一种:基础数据类型、基于IDL自定义得到的自定义数据类型以及由所述基础数据类型和所述自定义数据类型组合嵌套生成的复杂数据类型;根据所述指定的列名和多个数据类型,生成指定语言的类;根据所述多个数据表中包括的不同数据类型的数据,生成多个二进制文件,所述多个二进制文件中包括二进制结构化数值数据;在启动所述目标应用时,根据所述指定语言的类和所述多个二进制文件加载所述配置文件。本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得所述电子设备执行以下操作:根据目标应用的配置文件编辑得到多个数据表,所述多个数据表中包括指定的列名和多个数据类型,所述多个数据类型包括以下至少一种:基础数据类型、基于IDL自定义得到的自定义数据类型以及由所述基础数据类型和所述自定义数据类型组合嵌套生成的复杂数据类型;根据所述指定的列名和多个数据类型,生成指定语言的类;根据所述多个数据表中包括的不同数据类型的数据,生成多个二进制文件,所述多个二进制文件中包括二进制结构化数值数据;在启动所述目标应用时,根据所述指定语言的类和所述多个二进制文件加载所述配置文件。本申请实施例采用的上述至少一个技术方案能够达到以下有益效果:本申请实施例在加载应用的配置文件之前,由于可以对配置文件进行预编辑,并在预编辑时将配置文件中的复杂数据结构,比如字符串等,转化为指定的数据类型,进而转化为容易加载的二进制结构化数值数据,因此,在加载配置文件时,可以避免对配置文件中复杂数据结构的反序列化,减少配置文件的加载时长;此外,在加载配置文件时,由于可以基于指定语言的类和多个二进制文件进行加载,因此,可以将内存直接映射给指定语言来的类对应的类对象引用,并通过类对象对应的内存偏移量访问数据所在的内存的方式,直接获取类对象对应的数据,整个过程无需初始化解析器,也不需要进行反序列化解析对象,从而可以节省应用的配置加载的时间,加快配置加载的速度,进而可以快速启动应用。附图说明为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1是本申请的一个实施例配置文件的加载方法的流程示意图;图2是本申请的一个实施例配置文件的加载方法的流程示意图;图3是本申请的一个实施例配置文件的加载方法的流程示意图;图4为本申请实施例提供的一种电子设备的结构示意图;图5为本申请实施例提供的一种配置文件的加载装置的结构示意图。具体实施方式通常,应用的配置文件中包括复杂的数据结构,比如字符串等,在启动应用并加载配置文件时,往往需要对字符串等复杂的数据结构进行反序列化,以将字符串等复杂的数据结构解析成数值类型,进而实现对配置文件的加载,启动应用。然而,反序列化的过程通常耗费的时间较长,这样,就会导致配置文件的加载速度比较慢,特别是大型的游戏类应用,由于这些应用的配置文件中的数据较多,因此在进行反序列化时将会耗费更长的时间,配置文件的加载速度也会更加缓慢。此外,在进行反序列化时,还会占用大量的内存空间,导致内存消耗较大,相应也会产生较多的内存垃圾。为了解决上述技术问题,本申请实施例提供一种配置文件的加载方法和装置,该方法包括:根据目标应用的配置文件编辑得到多个数据表,所述多个数据表中包括指定的列名和多个数据类型,所述多个数据类型包括以下至少一种:基础数据类型、基于IDL自定义得到的自定义数据类型以及由所述基础数据类型和所述自定义数据类型组合嵌套生成的复杂数据类型;根据所述指定的列名和多个数据类型,生成指定语言的类;根据所述多个数据表中包括的不同数据类型的数据,生成多个二进制文件,所述多个二进制文件中包括二进制结构化数值数据;在启动所述目标应用时,根据所述指定语言的类和所述多个二进制文件加载所述配置文件。本申请实施例在加载应用的配置文件之前,由于可以对配置文件进行预编辑,并在预编辑时将配置文件中的复杂数据结构,比如字符串等,转化为指定的数据类型,进而转化为容易加载的二进制结构化数值数据,因此,在加载配置文件时,可以避免对配置文件中复杂数据结构的反序列化,从而减少配置文件本文档来自技高网...

【技术保护点】
1.一种配置文件的加载方法,其特征在于,包括:/n根据目标应用的配置文件编辑得到多个数据表,所述多个数据表中包括指定的列名和多个数据类型,所述多个数据类型包括以下至少一种:基础数据类型、基于IDL自定义得到的自定义数据类型以及由所述基础数据类型和所述自定义数据类型组合嵌套生成的复杂数据类型;/n根据所述指定的列名和多个数据类型,生成指定语言的类;/n根据所述多个数据表中包括的不同数据类型的数据,生成多个二进制文件,所述多个二进制文件中包括二进制结构化数值数据;/n在启动所述目标应用时,根据所述指定语言的类和所述多个二进制文件加载所述配置文件。/n

【技术特征摘要】
1.一种配置文件的加载方法,其特征在于,包括:
根据目标应用的配置文件编辑得到多个数据表,所述多个数据表中包括指定的列名和多个数据类型,所述多个数据类型包括以下至少一种:基础数据类型、基于IDL自定义得到的自定义数据类型以及由所述基础数据类型和所述自定义数据类型组合嵌套生成的复杂数据类型;
根据所述指定的列名和多个数据类型,生成指定语言的类;
根据所述多个数据表中包括的不同数据类型的数据,生成多个二进制文件,所述多个二进制文件中包括二进制结构化数值数据;
在启动所述目标应用时,根据所述指定语言的类和所述多个二进制文件加载所述配置文件。


2.如权利要求1所述的方法,其特征在于,根据所述指定的列名和多个数据类型,生成指定语言的类,包括:
针对其中一个数据表,执行以下操作:
将所述数据表中包括的列名和数据类型转化为IDL描述的数据结构;
使用指定的编译程序对所述IDL描述的数据结构进行编译,生成所述指定语言的类。


3.如权利要求1所述的方法,其特征在于,根据所述多个数据表中包括的不同数据类型的数据,生成多个二进制文件,包括:
针对其中一个数据表,执行以下操作:
将所述数据表中的数据转化为指定格式的数据;
使用指定的编译程序对所述指定格式的数据进行编译,得到二进制结构化数值数据;
根据所述二进制结构化数值数据,生成所述数据表对应的二进制文件。


4.如权利要求1所述的方法,其特征在于,根据所述指定语言的类和所述多个二进制文件加载所述配置文件,包括:
根据所述指定语言的类,生成与所述指定语言的类对应的类对象,所述类对象的属性包括内存偏移量,所述内存偏移量为生成所述指定语言的类时得到的内存偏移量;
将所述多个二进制文件加载至内存中,得到与所述内存偏移量对应的起始地址;
根据所述内存偏移量和所述起始地址,得到所述类对象对应的目标数据在内存中的访问地址;
根据所述访问地址从内存中读取所述目标数据。


5.如权利要求4所述的方法,其特征在于,在将所述多个二进制文件加载至内存中之前,还包括:
判断所述多个二进制文件的个数是否不小于第一阈值,或所述多个二进制文件包含的数据量是否不小于第二阈值;
若是,则将所述多个二进制文件进行合并,得到合并后的二进制文件;
其中,将所述多个二进制文件加载至内存中,包括:
将所述合并后的二进制文件中的目标二进制文件加载至内存中,所述目标二进制文件为所述多个二进制文件中的部分文件。


6.如权利要求5所述的方法,其特征在于,将所述合并后的二进制文件中的目标二进制文件加载至内存中,包括:
打开所述合并后的二进制文件,获取文件...

【专利技术属性】
技术研发人员:唐超勇李涛
申请(专利权)人:郑州阿帕斯数云信息科技有限公司
类型:发明
国别省市:河南;41

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

1