社区
姜雪伟的课程社区_NO_1
Unity3D移动端实战经验分享
帖子详情
protobuf-net介绍
海洋_
领域专家: 游戏开发技术领域
2023-01-12 14:42:15
课时名称
课时知识点
protobuf-net介绍
...全文
188
回复
打赏
收藏
protobuf-net介绍
课时名称课时知识点protobuf-net介绍
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
protobuf-net
.xml
protobuf-net
打包成的dll文件和对应的依赖;net462,适用于
protobuf-net
-3.2.30
protobuf-all-3.7.1.tar.gz
protobuf compiler protoc protobuf-all-3.7.1.tar.gz 编译器 google
网络通信_
protobuf-net
_无GC_性能优化_1741871700.zip
数据结构学习笔记
protobuf-net
无GC优化版本:含自定义数据结构及Unity3D C#无GC用法测试 V1 创建时间:04:32
资源下载链接为: https://pan.quark.cn/s/a93b13c711d5
protobuf-net
-gc-optimization 是针对
protobuf-net
的无 GC 优化版本,还提供了一些无 GC 自定义数据结构,以及对 Unity3D 中 C# 代码的各种无 GC 使用方式的测试。
protobuf-net
是 Unity3D 开发中常用的 Google Protocol Buffer 库的 C# 版本,因 C++ 版本不支持各平台动态库构建而被广泛使用,但它在 GC 方面存在问题,尤其在高频率网络通讯的状态同步游戏中 GC 过高,因此进行了彻底优化。 优化效果显著,从优化前后的对比数据看,多个操作的 GC 分配大幅降低,如 TestProtoBuf.Update () 相关操作的 GC 分配从 20.1KB 等降至 0B 左右,TypeModel.Serialize () 和 TypeModel.Deserialize () 的 GC 占比也从 1.6% 降至 0.0%。 优化针对
protobuf-net
产生 GC 的原因进行,包括反射、foreach、装箱、创建新 pb 对象和新字节数组等。采取的方案有去反射,借鉴生成 wrap 文件思想对指定协议 Hook;改写 foreach 遍历方式(Unity5.5 后该问题缓解);通过自定义 ValueObject 类实现无 GC 装箱拆箱;使用对象池获取和回收 pb 对象;用字节缓存池管理字节数组。 此外,还
介绍
了优化后的工程结构,包括自定义数据结构、测试协议、对象池和装饰器扩展等部分,以及 ProtoBufSerializer 脚本的功能和使用示例。同时,补充了自定义数据结构的内容和测试场景中的关键结论,如自定义结构需实现特定接口避免 GC,委托需缓存等。
Unity使用脚本生成Protobuf对应的DLL
使用脚本一键生成Unity使用Protobuf所需的DLL文件
姜雪伟的课程社区_NO_1
1
社区成员
229
社区内容
发帖
与我相关
我的任务
姜雪伟的课程社区_NO_1
畅销书作者,著作:《手把手教你3D游戏引擎架构》、《Unity3D实战核心技术详解》,《Cocos2d-x 3.x 图形学渲染技术讲解》等。
复制链接
扫一扫
分享
社区描述
畅销书作者,著作:《手把手教你3D游戏引擎架构》、《Unity3D实战核心技术详解》,《Cocos2d-x 3.x 图形学渲染技术讲解》等。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章