考虑到我的服务器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路由将有更好的可读性)
一般来说,我会警告不要过度优化。主要是因为你可能会花更多的时间去思考和比较,而不是浪费在"未优化"的代码上:)也就是说,只有在能够清楚地定义瓶颈时才进行优化。
希望有帮助