Web服务性能测试:Node完胜Java
作者:网络转载 发布时间:[ 2015/4/15 10:45:18 ] 推荐标签:性能测试 WEB服务 Node Java
简介
我近做了一些简单的关于内存的Web Service性能测试。我使用Java(REST+SOAP)和Node.js(REST)将一些接口功能缓存起来。跟期望的一样,Node应用的性能远远超出Java。(响应时间至少快1倍以上)。
NodeJS跟许多其他单线程语言一样,对内存并不贪婪,因为没有关于线程的内存开销,内存占用不会随着连接数的增长而增长,尤其在剔除掉读写文件/数据库等异步操作后,完全基于内存的NodeJS将有更显著的性能提升,从某种意义上来说基于内存的nodejs服务所能支持的大并发数将仅受限于带宽和CPU的处理能力。
可参见:性能测评:Ngix_Lua,Node.JS Python三者性能相当,均比php快近一倍,PayPal为什么从Java迁移到Node.js
缓存应用
图1:关于缓存应用的原理图。缓存支持插入,获取,删除键/值对
图2:关于应用更详细的物理图
这里使用了另外一种形式的REST,cache操作通过HTTP verbs来完成(Insert=PUT,Fetch=GET,Remove=DELETE)。数据刷新通过使用timeouts(Node)和scheduled threads(Java)来完成。缓存冗余是通过服务器间的REST调用来实现。(通过PUT/DELETE)
对于Java SOAP的扩展,cache操作通过经典的HTTP POST SOAP包来实现。
应用层结构
图3:基于Cache的Java REST组织结构图。Apache Tomcat+Jersey(servlet)在这一层。
图4:基于Cache的Java SOAP组织结构图。Apache Tomcat+Axis2(servlet)在这一层。
图5:为Node应用。仅初始化了一个worker。
测试
图6:为我测试时使用的环境
Java+Node REST缓存插入测试
ab-A username:password-u restput.txt-n 1000-c 1 https://server/ctispan/rest/key/111>results.txt
restput.txt
value=test111
Java SOAP缓存获取测试
ab-A client:password-T"application/soap+xml;charset=UTF-8"-p soapget.xml-n 1000-c 1
https://server/ctispan/services/CacheProxyWS.CacheProxyWSHttpSoap11Endpoint/>
results.txt
soapget.xml
<?xml version='1.0'encoding='UTF-8'?>
<soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope"><soapenv:Body>
<ns1:getValue xmlns:ns1="http://server.ctispan.jwisoft.com"><ns1:key>111</ns1:key>
</ns1:getValue></soapenv:Body></soapenv:Envelope>
Java SOAP缓存插入测试
ab-A client:password-T"application/soap+xml;charset=UTF-8"-p soapput.xml-n 1000-c 1
https://server/ctispan/services/CacheProxyWS.CacheProxyWSHttpSoap11Endpoint/>results.txt
soapput.xml
<?xml version='1.0'encoding='UTF-8'?>
<soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope">
<soapenv:Body><ns1:putValue xmlns:ns1="http://server.ctispan.jwisoft.com">
<ns1:key>111</ns1:key><ns1:value>text111</ns1:value></ns1:putValue>
</soapenv:Body></soapenv:Envelope>
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11