0

我正在实现一个低延迟的实时应用程序,它应该推送过多的消息。

我想问一下通过 TCP 连接发送序列化对象或纯长字符串(将在客户端解析为 XML)与性能方面有何不同?

我说的是毫秒。

谢谢,雷。

4

3 回答 3

1

如果您在谈论毫秒,请忘记将对象序列化/反序列化为 XML。

首先,Object 到 XML 的序列化/反序列化已经花费了一些时间。正如@Brian Agnew 所指出的,您还需要认真检查您的 XML 序列化方法。

其次,TCP 上的 XML(字符串)对带宽不友好,因此需要更长的时间来传输。Google Protocol Buffers 在这方面提供了一些优势,尽管它实际上取决于您的消息的大小。

于 2012-06-13T09:50:15.027 回答
1

查看https://github.com/eishay/jvm-serializers/wiki/Home/25fd014e66738268670adaf44ff5408ba2244d37,其中比较了 java 中的对象序列化框架

于 2012-06-13T09:59:13.263 回答
1

与所有这些类型的问题一样,我会制作一些方法的原型并衡量结果。

特别是,您没有指定您的 XML 序列化方法(例如 XStream、JAXB、通过 SAX 解析等),仅此一项就会显着影响您的结果。

我也很感兴趣您正在考虑(我认为)Java 对象序列化与 XML,并建议您也考虑诸如 JSON 或 Google 协议缓冲区之类的方法,仅举两例。

最后,请参阅诸如此类的问题它提供了丰富的进一步信息。

于 2012-06-13T09:34:48.277 回答