客户端 - 服务器通信的可扩展性; XML v序列化二进制文件

时间:2011-05-12 08:40:24

标签: java xml serialization java-ee client-server

过去,我所使用的系统通常使用XML在客户端和服务器之间进行通信以及传输结果集等。然而,我当前的项目只是将对象列表序列化为二进制文件并将其发送到丝。

我们现在已经到了这样的程度,即由于一堆新字段,我们的'传输对象'(缺乏更好的描述)可能会开始增长。这增加了这样一个事实,即我们理论上可以列出任何多达100,000个被发送对象的列表,这让我开始怀疑我们当前方法与使用XML的相对性能。

当我说“表现”时,我会考虑:

  • 通过电线发送的对象的大小和所花费的时间
  • 组装准备转移的对象所花费的时间
  • 在我们在UI中显示之前,在另一侧解析/反序列化所花费的时间

我的直觉是XML可能非常详细,所以可能需要某种压缩......但我并不熟悉它如何扩展到序列化二进制文件。关于哪种方法更具可扩展性,或者我们是否已进入“适合目的”这一领域,是否存在普遍共识? :)

感谢您的任何建议。

干杯, 戴夫。

1 个答案:

答案 0 :(得分:2)

我认为,一般来说,有一些共识认为XML序列化相当冗长而且不是很快。

关于你的二进制序列化,因为我们不知道实现,所以很难判断。你当然可以自己做一些性能比较。

此外,查看二进制协议的公开可用实现并了解它们如何针对XML进行操作可能会很有趣。 想到Protocol buffersThrift

同时检查以下内容: Performance comparison of Thrift, Protocol Buffers, JSON, EJB, other?

https://github.com/eishay/jvm-serializers/wiki/