Unreal UnLua + Lua Protobuf

Unreal UnLua + Lua Protobuf

https://protobuf.dev/

protobuf wire format:pb 编译到底层的数据协议

https://github.com/starwing/lua-protobuf/blob/master/README.zh.md

buffer 处理

lua string 可以当 buffer 用,# len 不会遇到 0 截断,注意和 cstring 的区别

UE FString 有点坑

  1. UnLua FString => lua string 用的 lua_pushstring,会遇到 0 截断
  2. FString 本身是带编码的,当 buffer 还是。。

哎,稳妥的做法还是 TArray<uint8> ,这样先把业务跑起来了

这块最好还是手写 Lua C API 来减少传递的 overhead,避免重复拷贝

序列化测试

发现和 C++ PB 序列化出来的结果不一样,咨询了下作者, Lua PB 默认是随机字段顺序

开启 encode_order 即可,不过仅限开发测试用,性能差

lua 复制代码
pb.option("encode_order")

proto 管线

相关推荐
上去我就QWER2 小时前
Qt中如何获取系统版本信息
开发语言·qt
我是苏苏3 小时前
C#高级:程序查询写法性能优化提升策略(附带Gzip算法示例)
开发语言·算法·c#
木木子99993 小时前
业务架构、应用架构、数据架构、技术架构
java·开发语言·架构
大佬,救命!!!7 小时前
C++多线程同步与互斥
开发语言·c++·学习笔记·多线程·互斥锁·同步与互斥·死锁和避免策略
赵文宇(温玉)8 小时前
构建内网离线的“github.com“,完美解决内网Go开发依赖
开发语言·golang·github
qq7422349848 小时前
Python操作数据库之pyodbc
开发语言·数据库·python
Joker100858 小时前
仓颉自定义序列化:从原理到高性能多协议实现
开发语言
Adellle8 小时前
2.单例模式
java·开发语言·单例模式
散峰而望8 小时前
C++入门(一)(算法竞赛)
c语言·开发语言·c++·编辑器·github
C_Liu_8 小时前
13.C++:继承
开发语言·c++