ActiveMQ 推荐使用ObjectMessage方式而不用TextMessage传输json串

我接触json是在07年的时候,这些年随着rest等概念的流行,json越发的红火起来,眼瞅着有一统天下的架势了。

这些年对json的使用,我越发疑惑一个事情:当server之间异步交互时,有必要用json吗?

正好手里有个项目要用ActiveMQ,做了下测试。

为了体现差距,专门做了个很大的class,使用json转换后大概35MB左右

使用json传输的情况,单位均为ms:

总时间:17366  

传输时间:220

发送者把object转为json的时间:6271

发送总共时间:10000

接收者把message转换为textMessage时间:0

接收者把json转换为object时间:7146。

****************************************

使用ObjectMessage进行传输的情况:

总时间:6742

传输时间:173

发送总时间:4836

接收者把message转换为ObjectMessage时间:1733

******************************************

结论

  虽然没做压力测试,虽然只测了一次,虽然测试环境仅仅是我的笔记本,但我想我已经可以做出结论了。

  在server之间的异步通信时,object优于json。

  优势主要集中于java序列化和对象之间转换的效率远高于json盒对象转换的效率,另外序列化后对象的大小比json的小也是有利传输的原因。

 

对了,json转换用的是jsonlib,很久没关心json的性能了,不知有没有更高效的转换工具。

posted @ 2013-08-08 11:29  世间一旅人  阅读(6801)  评论(3编辑  收藏  举报