通信技术和数据格式性能比较调查(Websocket,Ajax,Json,Msgpack,Bson)

本文对比了JSON、MessagePack与BSON三种数据格式在网络传输中的表现,并结合Tomcat与Node.js服务器的不同场景进行了性能测试。结果显示,在考虑压缩的情况下,JSON成为交互页面的最佳选择,而MessagePack则更适合服务器间的大数据量传输。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先声明这是2016年1月份的测试结果

收到委托,需要测试两种应用环境下的性能

 1-request/response型的

 特征:数据量大,对数据格式的要求:网络传输时的数据要小

 2-realtime型

 特征:数据量小,但是对通信速度要求很高。需要从服务器向客户端主动推送数据

选定以下组件

 数据格式:

 1, JSON 带有语义,可读性较好,但是数据量大,网络负载高。

       跟Javascript相容特别好,所以处理速度快。

 2,   MessagePack 二进制,不具备可读性,但是数据小,网络负载低。

       但是与Javascript相容很低,处理速度慢。

 3,   BSON MongoDB的数据格式。二进制。

 通信技术 :

 1, Ajax

 2, WebSocket 真正意义上的服务器往客户端推送。

    但是受制于浏览器支持情况(Ie10含以上, 火狐6以上,Chome4以上)

    JavaEE7以上,Tomcat7以上

 服务器:

  1, Tomcat

 2, Node.js 单一线程处理,减少浪费,号称效率高

测试环境
 1, 服务器    
 OS CentOS 6.5 64   
 CPU Intel Core i5-4460 @3.20 GHz 核数4   
 内存 4G   
    
 2, 客户端    
 OS Windows 7 Professional 64   
 CPU Intel Core i5-4460 @3.20 GHz  核数4   
 内存 4G   
        
 3, Tomcat + Java   
 Java jdk-8u66   
 Tomcat  apache-tomcat-8.0.28   
 Eclipse Eclipse Java EE IDE for Web Developers. Version: Mars.1 Release (4.5.1)   
 msgpack msgpack-0.6.7   
 bson bson-2.9.3   
        fastjson-1.2.5.jar


 4, Node + JavaScript  
 Node node v5.0.0   
 msgpack msgpack-lite v0.1.13 *   
 bson bson v0.4.19   
       
 * msgpack-lite类库选择   
 http://qiita.com/kawanet/items/f800c0eb37c1cb683918    
        
 5, 浏览器 Firefox 31.0   
    
 6, 网络 100Mbps

测试结论

 1, 数据格式的比较(考量网络负载) 

 结论
 数据按小到大的顺序:MessagePack, Json, Bson
 但是开启压缩模式后,三种格式相差无几
        和客户端交互的页面, 因为有压缩的加成,二进制也没有什么优势,还是选择json
        但是在服务器和服务器之间传递数据的时候,不考虑数据的显示等问题,又没有压缩的优势,还是选择messagepack
        

 2, 序列化+反序列化时间比较
 结论: json时间最少,最快
        果然json和js的密切关系,导致解析特别快,其他两种比不上.当然类库也不如json强大

 3, 数据格式和序列化反序列化时间综合考量
        结论:推荐顺序, Json, MessagePack, Bson
      
 4, 服务器比较(Tomcat, Node)
        结论:还是Tomcat快
 
        5, 通信总时间
        结论
 1K数据的情况,由快到慢,WebSocket, 圧縮+Ajax, 非圧縮+Ajax  
 5M数据的情况,由快到慢, 圧縮+Ajax, WebSocket, 非圧縮+Ajax  
 10M数据的情况,由快到慢, WebSocket, 圧縮+Ajax, 非圧縮+Ajax

      总结论
      
        1-request/response型
         Tomcat+Java+Json+Ajax+圧縮(Gzip)
        2-realtime型
         Tomcat+Java+MessagePack+WebSocket


   有很多数据和图标,但是不知道怎么放上去。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值