【发布时间】:2014-08-19 20:08:11
【问题描述】:
我必须使用 UDP 数据报通过网络传输 Java 中的对象。就开销、消耗的字节数、速度而言,哪种格式会更好?我尝试过使用序列化并了解 JSON。哪个更好?
【问题讨论】:
-
许多比 json 更快的选项 - protobuf 和 kryo 等等
-
这在很大程度上取决于相关数据的具体特征——消息大小、每个数据报的消息数量、吞吐量、丢失可接受性......
-
这是一个非常模糊的问题。在这种情况下,什么更好或“最好”在很大程度上取决于您要传输的数据。您需要灵活的数据格式,还是总是发送相同类型的数据?空间比速度更重要吗?此外,UDP 具有最大数据报大小,因此您必须确保不超过该大小,或者将其分解为多个 UDP 数据包。当然,一旦你这样做了,你就得担心 UDP 丢包等问题。话虽如此,我同意 radai —— protobuf 还不错,背后有很多支持。
-
我已经为数据包格式的 .所以我只需要将数据放在数据包对象中,然后在一个数据报中发送对象。
-
是的,我担心数据报的大小。将对象转换为 JSON 会比序列化字节流的大小更小吗?
标签: java json networking serialization network-programming