【发布时间】:2014-08-27 08:41:21
【问题描述】:
鉴于我的服务器 API 需要 C# 字符串,推荐使用这两种方法中的哪一种?哪一个会导致字符串长度最短?
1) Protobuf-net 使用 protobuf-net 转换对象 字节数组 使用 Convert.ToBase64String 方法转换字节数组 字符串
2) 直接使用Json .Net 转换对象 字符串
我们的项目中有 Protobuf-net 与 byte[] 服务器 API 一起工作。现在我们的服务器正在迁移到字符串 API 而不是 byte[]。我们不确定是应该迁移到 Json .Net 还是继续使用 protobuf-net 并使用 Convert Base 64 进行额外的字符串到 byte[] 的转换。
你有什么建议?
【问题讨论】:
-
Which one of the two is more performant given my server API is expecting a C# string简单。阅读this -
我想知道询问基准测试结果的一般优点...我认为大多数情况都包含在 1. 编写时间
-
@EZI 感谢您分享链接。我完全同意你的看法。但是,如果有人已经进行了比较或已经在同一条船上。我更愿意从他们的经验中学习,而不是自己尝试。
-
@user3504386 一般来说,在这种情况下——因为两个框架都会做大致相同的事情——我更喜欢在代码中编写/读取代码行数更少的框架。在你的情况下,我会(按照我的直觉)说双重转换比单一转换慢。但是json比二进制序列化的base64字符串更冗长,所以你需要考虑带宽是你的瓶颈还是cpu ...
-
@NathanDortman 除非数据在内部由文本内容主导,在这种情况下,json 可能比 (base-64)-of-(utf-8) 更有效
标签: serialization unity3d json.net protobuf-net