序列化unity3d c#对象到字符串和返回



考虑到我的服务器API期望c#字符串,这两种方法中的哪一种是推荐的方法?哪一个会导致最小的字符串长度?

1) Protobuf-net使用protobuf-net转换对象<->字节数组使用转换。ToBase64String方法用于转换字节数组<-> string

2)使用Json .Net直接转换对象<->字符串

我们有Protobuf-net工作在我们的项目与byte[]服务器api。现在我们的服务器正在迁移到字符串api,而不是byte[]。我们不确定我们是否应该移动到Json . net或留在protobuf-net和使用Convert Base 64额外的字符串到字节[]转换。

你有什么建议?

好的,这是我的思考过程,我希望能帮助你在两者之间做出选择:

在决定哪一个更好之前,我们需要更好地掌握问题的背景。优化总是需要在定义良好的"适应度"参数下进行。我的意思是:

  • 如果你最受CPU使用的限制,我会测试看看哪个代码使用更多的CPU来执行。
  • 如果带宽是一个问题,你会想看看发送最小数据包的方法。(在这种情况下,二进制序列化的base64应该是答案。)
  • 如果代码可读性是一个因素,你可能应该看看哪些代码更容易阅读/理解,而编写的文本更少。(在这种情况下,我怀疑JSON路由将有更好的可读性)

一般来说,我会警告不要过度优化。主要是因为你可能会花更多的时间去思考和比较,而不是浪费在"未优化"的代码上:)也就是说,只有在能够清楚地定义瓶颈时才进行优化。

希望有帮助

相关内容

  • 没有找到相关文章