Treasure / datatable

Created Sat, 01 Apr 2023 00:00:00 +0000
497 Words

简介

DatatableModule 是一个基于 kpb 编码的配置文件管理系统,它定义了一个配置文件的数据结构,并提供了相应的API来操作和访问配置文件。在Zen中它是一个GameComponent。它包含了一个代码生成器,和数据解析器和编码器。

数据表的加载只有4(2)个接口 LoadDatatable<T>(bool lazy) GetRow<T>(int row) 以及一套同作用的异步接口,前者获取一整张表,后者获取某表的某一行数据,即对应的数据结构体。

Datatable 静默行为是 Lazy load 对于同一张数据表,它只会根据需要读取指定行然后才缓存,而不是一次性读取所有表格。

Feature

  1. lazy load,它不会加载表格的所有数据,而是按照需要动态一部分一部分的加载,直到全部加载完毕。

  2. DatatableModule 加载接口提供同步和异步两种模式,也可以加载远程资源,依赖于 Resource

  3. DatatableModule 提供代码和数据生成的编辑器,无需关注实现逻辑。

  4. 多种类型数据支持 bool,int,float,string,binary,int*,float*,string*,满足绝大部分场景 (2024/05/23)增加了定长数据的支持,减少内存消耗。

  5. 基于kproto编码协议,极小的二进制文件,以及极快的编解码速度。

  6. 栈内存映射,大部分情况下不需要开辟堆空间,节省一部分堆内存的分配,减少Mono Reserved的分配。