首先声明这是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, 数据格式的比较(考量网络负载)
5M数据的情况,由快到慢, 圧縮+Ajax, WebSocket, 非圧縮+Ajax
10M数据的情况,由快到慢, WebSocket, 圧縮+Ajax, 非圧縮+Ajax