发布时间:2026/7/16 5:20:24
Excel 利用 protobuf 转数据核心流程 在当今IT行业,特别游戏开发领域,工程师们常常面临着将大量数据配置在Excel表格,然后转换到自己想要的程序数据中去,我们可以用到xresloader protobuf/msgpack/lua/javascript/json/xml) · GitHub">GitHub - owent/xresloader: 跨平台Excel导表工具(Excel=protobuf/msgpack/lua/javascript/json/xml) · GitHub,它是一个很好用的跨平台Excel导表工具,将数据转为Protobuf再读取利用。Protobuf序列化/反序列化速度比JSON快 3~10 倍,Protobuf是微服务内部通信、移动端与服务器交互、大数据传输、高性能 RPC、实时游戏的常用格式一.定义数据结构编写.proto文件,明确字段名、类型及编号。proto文件示例:syntax = "proto3"; package ProtocolPB; option go_package = "myGanem/protocol/pbgo/config"; option optimize_for = CODE_SIZE; import "CSCommon.proto"; message AidLevelCfg_cfg { uint32 AidLevel = 1; // 互助等级 @all int64 LevelUpAidExp = 3; // 升级所需要经验 @all uint32 WallLevelLimit = 4; // 宣传墙等级上限 @all float FloatValue = 5; // 浮点数 repeated int32 CabinetNum = 6; // 仅供展示藏馆展位 (小中大) @all int64 DailyPickupOrbMaxNum = 7; // 每天拾取光球上限 @all uint32 MajorRank = 8; // 段位 @all uint32 NotMeetDealershipLevelErrorCode = 9; // 不满足车行等级时的错误码 @all string _src = 10; // 配置行来源 @all bool BoolValue = 11; // 布尔值 AreaType AreaType = 12; //区域类型 repeated ThingAwardInfo Award = 13; //物品奖励信息数组 } //@key: AidLevel message AidLevelCfg { repeated AidLevelCfg_cfg AidLevelCfg_cfg = 1; }文件级声明我们先来看看文件头部属性,也就是官方所谓的“文件级声明”或者“文件级选项”syntax = "proto3"; // proto3版本语法 package ProtocolPB; // 定义包名为 ProtocolPB option go_package = "myGame/protocol/pbgo/config"; // Go代码包路径 option optimize_for = CODE_SIZE; // 编译时优化为代码体积最小1.syntax = "proto3";指定使用的 protobuf 语法版本。proto3是 protobuf 的第三版语法规范,相比proto2更简洁,默认字段值和可选字段处理更简单,推荐现在新项目都用proto3。作用是告诉编译器,用哪个版本的语法来解析.proto文件。2.package ProtocolPB;定义这个.proto文件中消息的命名空间(包名)。用来避免不同.proto文件定义的消息名冲突,类似编程语言里的包/命名空间机制。生成代码时,消息会被放在对应的ProtocolPB包或命名空间里。3.option go_package = "pracing/protocol/pbgo/config";给 Go 语言代码生成器用的选项。指定生成的 Go 语言包路径,也就是生成的 Go 代码会被放进这个包中。这个字符串一般是你的模块或者项目中,存放 protobuf 相关 Go 代码的路径。这样protoc生成的 Go 文件就带有正确的包引用,方便与其它代码集成。4.option optimize_for = CODE_SIZE;一个 protobuf 编译选项,指定生成代码时优化的目标。CODE_SIZE代表生成的代码会尽可能小,减少体积,可能以牺牲一定的性能为代价。另外两个可选值是:SPEED:优先代码执行速度LITE_RUNTIME:生成适用于轻量级运行时环境的代码

相关新闻

2026/7/16 5:20:24

四开关Buck-Boost变换器Simulink仿真与稳压控制设计

1. 四开关Buck-Boost到底解决什么实际问题四开关Buck-Boost变换器最直接的价值是能在输入电压波动时稳定输出一个固定电压。比如输入可能从12V跳到24V,但输出必须稳定在15V。普通Buck或Boost电路只能应对单方向变化,而这个结构把两种拓扑合并&#xff0c…

2026/7/16 5:20:24

C++ map equal_range:从基础查找到范围查询的进阶技巧

1. 项目概述:从“查找”到“范围查找”的思维跃迁 在C的日常开发中, std::map 几乎是每个开发者都绕不开的关联容器。我们用它来存储键值对,享受其基于红黑树实现的 O(log n) 查找效率。最常见的操作是什么?无非是 find 、 i…

2026/7/16 5:20:24

苹果M7 Ultra将支持1.5TB统一内存,大模型本地运行成本分析

苹果正在为M7 Ultra芯片规划最高1.5TB的统一内存配置,这将是Apple Silicon首次在内存容量上追平2019款Intel Mac Pro的峰值规格。根据最新消息,M7 Ultra预计2028年推出,主要搭载于Mac Studio等高端工作站机型。这一内存规格的提升对专业用户具…

2026/7/16 8:40:34

网络协议面试题(从入门到精通,一文讲透核心原理与实战)

1. 网络协议基础与分层思想网络协议是计算机通信的基石,理解协议栈分层是掌握网络技术的钥匙。想象一下寄快递的过程:你需要填写收件人信息(应用层)、选择快递公司(传输层)、快递网点分拣(网络层…

2026/7/16 8:40:34

BabelDOC文档翻译工具:3步实现专业级PDF双语对照翻译

BabelDOC文档翻译工具:3步实现专业级PDF双语对照翻译 【免费下载链接】BabelDOC Yet Another Document Translator 项目地址: https://gitcode.com/GitHub_Trending/ba/BabelDOC 还在为技术文档翻译后的格式错乱而烦恼吗?BabelDOC作为新一代智能文…

2026/7/16 8:40:34

终极指南:3分钟掌握Wallpaper Engine资源提取神器RePKG

终极指南:3分钟掌握Wallpaper Engine资源提取神器RePKG 【免费下载链接】repkg Wallpaper engine PKG extractor/TEX to image converter 项目地址: https://gitcode.com/gh_mirrors/re/repkg 你是否曾经面对Wallpaper Engine中精美的动态壁纸,却…

2026/7/16 8:40:34

开源大模型本地部署与优化实战:6个月内保持竞争力的关键技术

开源模型在技术快速迭代的背景下,正面临一个关键的时间窗口。过去半年,闭源模型在长文本、多模态、推理能力上的突破,让许多原本依赖开源方案的项目开始重新评估技术选型。但开源模型在数据隐私、定制化、成本控制方面的优势依然明显&#xf…

2026/7/16 8:40:33

WinRAR压缩工具全面指南:从安装配置到高级应用技巧

如果你还在为电脑上的压缩文件管理而烦恼,每次解压都要面对各种弹窗广告,或者担心压缩软件的安全性,那么今天这篇文章就是为你准备的。 WinRAR 作为一款拥有超过 5 亿用户的老牌压缩工具,在 Windows 11 和 Windows 10 系统上依然…

2026/7/16 8:35:33

C++ std::array:零成本抽象,安全高效的固定大小容器

1. 项目概述如果你还在用int arr[10];这种老式的C风格数组,是时候重新审视一下你的工具箱了。std::array这个C11引入的“小家伙”,远不止是给原生数组套了个壳那么简单。它更像是一个“零成本升级包”,在保持与原生数组完全相同的运行时性能和…

2026/7/15 17:04:06

3步解锁音乐自由:ncmdumpGUI终极NCM文件解密转换指南

3步解锁音乐自由:ncmdumpGUI终极NCM文件解密转换指南 【免费下载链接】ncmdumpGUI C#版本网易云音乐ncm文件格式转换,Windows图形界面版本 项目地址: https://gitcode.com/gh_mirrors/nc/ncmdumpGUI 你是否曾在网易云音乐下载了心爱的歌曲&#…

2026/7/15 22:21:34

CANoe 19 SP3 配置 GB/T 27930-2023 A类系统:3步搭建BMS仿真测试环境

CANoe 19 SP3 配置 GB/T 27930-2023 A类系统:3步搭建BMS仿真测试环境随着新能源汽车行业的快速发展,充电通信协议的标准化和测试验证变得尤为重要。GB/T 27930-2023作为中国智能充电协议的最新版本,对充电机与电动汽车之间的通信提出了更严格…

2026/7/15 23:18:22

3步搞定RTL8852BE驱动:从零开始配置Wi-Fi 6网卡

3步搞定RTL8852BE驱动:从零开始配置Wi-Fi 6网卡 【免费下载链接】rtl8852be Realtek Linux WLAN Driver for RTL8852BE 项目地址: https://gitcode.com/gh_mirrors/rt/rtl8852be 还在为Linux系统无法识别RTL8852BE Wi-Fi 6网卡而烦恼吗?&#x1f…

2026/7/16 0:04:06

AD9215BRUZRL7-105是一款工业 10bit 流水线模数转换器

型号介绍AD9215BRUZRL7-105 是一款10 位单通道高速流水线模数转换器,它采用模拟单电源独立供电 数字驱动分离供电双电源架构,模拟电源 AVDD 额定 3V,允许工作区间 2.7V~3.3V;数字驱动电源 DRV 独立设计,支持 2.25V~3.…

2026/7/16 0:04:06

LTC4418IUF#TRPBF是一款工业级双通道控制器

型号介绍LTC4418IUF#TRPBF 是一款工业级双通道电源路径控制器,它芯片采用 20 引脚 4mm4mm QFN 封装,底部附带外露散热焊盘作为 21 号 GND 引脚,热阻 θJA 为 47℃/W、θJC 仅 4.5℃/W,散热性能适配大功率切换场景;温区…

2026/7/16 0:04:06

uos-exporter核心组件解析:10个关键监控导出器功能详解

uos-exporter核心组件解析:10个关键监控导出器功能详解 【免费下载链接】uos-exporter uos-exporter collects metrics from os 项目地址: https://gitcode.com/openeuler/uos-exporter 前往项目官网免费下载:https://ar.openeuler.org/ar/ uos-…

2026/7/15 13:36:32

3个高效策略:快速掌握Axure中文界面配置

3个高效策略:快速掌握Axure中文界面配置 【免费下载链接】axure-cn Chinese language file for Axure RP. Axure RP 简体中文语言包。支持 Axure 11、10、9。不定期更新。 项目地址: https://gitcode.com/gh_mirrors/ax/axure-cn 还在为Axure RP的英文界面感…