[发明专利]一种信息表文件的读取系统及方法在审
申请号: | 201711316384.8 | 申请日: | 2017-12-12 |
公开(公告)号: | CN108108411A | 公开(公告)日: | 2018-06-01 |
发明(设计)人: | 王礼春 | 申请(专利权)人: | 苏州蜗牛数字科技股份有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 北京德崇智捷知识产权代理有限公司 11467 | 代理人: | 王金双 |
地址: | 215000 江苏省*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 信息表 读取 解析 文件转换模块 读取模块 读取系统 文件对象 聚合 转换 表头信息 内容分组 容器结构 文件存储 文件内容 信息存储 用户读取 构建 解压 流式 算法 内存 分组 消耗 节约 | ||
一种信息表文件的读取系统及方法,所述系统包括:信息表文件转换模块和文件对象读取模块,其中,所述信息表文件转换模块,其以列为单位对信息表文件中的内容分组聚合,并基于表头信息对分组聚合的内容进行转换;所述文件对象读取模块,其采用流式解压算法,读取转换后的信息表文件;再基于解析指示,解析转换后的信息表文件的文件内容。本发明还提供一种信息表文件的读取方法,文件存储本身更小;读取时无解析消耗,使用的时候才有解析;不需要构建信息存储容器结构;CPU开销更小、更稳定,更节约内存,用户读取更快速且实时。
技术领域
本发明涉及文件读取技术领域,特别是涉及一种信息表文件的读取系统及方法。
背景技术
现在越来越多的公司都会将Unity作为游戏开发的首选工具,而Unity游戏多是以C#语言开发、堆内存分配与回收机制运行的。Unity的读取信息表文件(例如游戏的配置文件)的方法有很多种,大多都是以Unity资源加载方式为主、工具类解析为辅的方式完成。
目前主流的方法是采用微软自带的XmlDocument、第三方的XmlParse、TbXml、Unity序列化等工具类去实现,此外还可以采用一些基于Sql数据库的文件表读取查询系统等去实现。但这些工具或者系统在运行效率、使用复杂度上均存在诸多不足:
首先,这些工具或者系统大多数都使用Unity文件读取,在资源加载时需要为文件分配内存。
其次,在使用XmlDocument、XmlParse或者TbXml等工具类时,存在许多问题,比如:遍历时存在大量CPU耗时;读取时存在大量、临时的解析内存分配消耗。读取时,需要先将文件数据对象先全部解析再存储到使用者定义的容器结构列表中来,假如一个文件是2M,解析的时候,甚至可以达到10M的临时内存的分配,存储的结构占用的内存可能需要4M。
此外,解析时,CPU的稳定也受到影响,容易产生瞬间峰值导致降帧。
综上所述,这类文件读取工具或者系统在读取过程中都存在着不同程度的性能开销或者使用问题。鉴于此,Unity自身提供了一种以序列化的方式读取文件的方案。此种Unity的方案是将解析的过程转移给Native层解析,虽然消耗降低了,但是无法解决文件配置信息被一次性全部解析到.net存储空间中的问题。并且,在.net中只要将文件内存数据转换为对象数据或者填充到使用自定义的结构列表中,就会产生消耗。也就是说,这个解析的过程或者构建过程本身就是一个性能消耗的问题。因此,目前文件系统中基本存在以下3类问题:
1)文件存储资源本身占据的内存;2)解析文件产生的临时内存;3)构建文件存储结构的开销。
发明内容
为了解决现有技术存在的不足,本发明的目的在于提供一种信息表文件的读取系统及方法,能够采用流式读(读取文件为流式解缩进行读取)、不全读(使用到的时候读取,不解析读不到的内容)、不构建(查找遍历直接在当前数据空间中操作)的方式,实现信息表文件的读取。
为实现上述目的,本发明提供的信息表文件的读取系统,包括:信息表文件转换模块和文件对象读取模块,其中,
所述信息表文件转换模块,用于以列为单位对信息表文件中的内容分组聚合,并基于表头信息对分组聚合的内容进行转换;
所述文件对象读取模块,采用流式解压算法,读取转换后的信息表文件;再基于解析指示,解析转换后的信息表文件的文件内容。
进一步地,所述表头信息包括:表头大小、信息表行数、信息表列数、关键列、各列名称、各列类型、列缺省值、各列数值区起始地址、列存储区信息和列分区映射信息。
进一步地,所述信息表文件转换模块,还用于对信息表文件进行预处理,所述预处理包括:
获取信息表文件的列数;
确定信息表文件中每列的数据类型;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于苏州蜗牛数字科技股份有限公司,未经苏州蜗牛数字科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201711316384.8/2.html,转载请声明来源钻瓜专利网。