12 public OrderInfo LoadOrder(OrderInfo order);
13 }
[![复制代码](https://img-blog.csdnimg.cn/img_convert/4a8ed466875739b55bd7d29955919d91.gif)](https://jonhuster.blog.csdn.net/article/details/53374718 "复制代码")
2、服务实现相关代码,测试数据在服务器端不做任何处理原样返回:
![](https://img-blog.csdnimg.cn/img_convert/126b261f7a58ba59f7976bd6ad6161f4.gif) View Code
五、单线程测试
=======
1、测试仅记录rpc调用时间,测试数据的读取组装以及首次建立连接等相关耗时时间不作统计,循环执行100次取平均值。
2、服务消费方测试代码
![](https://img-blog.csdnimg.cn/img_convert/c04d821290e95791b03688aa05de6cc1.gif) View Code
3、测试数据耗时记录
A、dubbo 协议、netty 传输、hessian2 序列化
<dubbo:protocol name="dubbo" server="netty" port="30001" serialization="hessian2" />
<table border="1" style="border:1px solid silver; border-collapse:collapse; word-break:break-word; width:300px"><tbody><tr><td width="150" style="color:rgb(69,69,69); font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; border:1px solid silver; border-collapse:collapse; padding:3px">单个POJO</td><td style="color:rgb(69,69,69); font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; border:1px solid silver; border-collapse:collapse; padding:3px">0.958毫秒</td></tr><tr><td style="color:rgb(69,69,69); font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; border:1px solid silver; border-collapse:collapse; padding:3px">POJO集合 (100)</td><td style="color:rgb(69,69,69); font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; border:1px solid silver; border-collapse:collapse; padding:3px">1.438毫秒</td></tr><tr><td style="color:rgb(69,69,69); font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; border:1px solid silver; border-collapse:collapse; padding:3px">1K String</td><td style="color:rgb(69,69,69); font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; border:1px solid silver; border-collapse:collapse; padding:3px">0.68毫秒</td></tr><tr><td style="color:rgb(69,69,69); font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; border:1px solid silver; border-collapse:collapse; padding:3px">100K String</td><td style="color:rgb(69,69,69); font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; border:1px solid silver; border-collapse:collapse; padding:3px">4.262毫秒</td></tr><tr><td style="color:rgb(69,69,69); font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; border:1px solid silver; border-collapse:collapse; padding:3px">1M String</td><td style="color:rgb(69,69,69); font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; border:1px solid silver; border-collapse:collapse; padding:3px">32.473毫秒 </td></tr></tbody></table>
B、dubbo 协议、netty 传输、dubbo 序列化
<dubbo:protocol name="dubbo" server="netty" port="30001" serialization="dubbo" />
<table border="1" style="border:1px solid silver; border-collapse:collapse; word-break:break-word; width:300px"><tbody><tr><td width="150" style="color:rgb(69,69,69); font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; border:1px solid silver; border-collapse:collapse; padding:3px">单个POJO</td><td style="color:rgb(69,69,69); font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; border:1px solid silver; border-collapse:collapse; padding:3px">1.45毫秒</td></tr><tr><td style="color:rgb(69,69,69); font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; border:1px solid silver; border-collapse:collapse; padding:3px">POJO集合 (100)</td><td style="color:rgb(69,69,69); font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; border:1px solid silver; border-collapse:collapse; padding:3px">3.42毫秒</td></tr><tr><td style="color:rgb(69,69,69); font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; border:1px solid silver; border-collapse:collapse; padding:3px">1K String</td><td style="color:rgb(69,69,69); font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; border:1px solid silver; border-collapse:collapse; padding:3px">0.94毫秒</td></tr><tr><td style="color:rgb(69,69,69); font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; border:1px solid silver; border-collapse:collapse; padding:3px">100K String</td><td style="color:rgb(69,69,69); font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; border:1px solid silver; border-collapse:collapse; padding:3px">4.35毫秒</td></tr><tr><td style="color:rgb(69,69,69); font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; border:1px solid silver; border-collapse:collapse; padding:3px">1M String</td><td style="color:rgb(69,69,69); font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; border:1px solid silver; border-collapse:collapse; padding:3px">27.92毫秒</td></tr></tbody></table>
C、dubbo 协议、netty 传输、java 序列化
<dubbo:protocol name="dubbo" server="netty" port="30001" serialization="java" />
<table border="1" style="border:1px solid silver; border-collapse:collapse; word-break:break-word; width:300px"><tbody><tr><td width="150" style="color:rgb(69,69,69); font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; border:1px solid silver; border-collapse:collapse; padding:3px">单个POJO</td><td style="color:rgb(69,69,69); font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; border:1px solid silver; border-collapse:collapse; padding:3px">1.91毫秒</td></tr><tr><td style="color:rgb(69,69,69); font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; border:1px solid silver; border-collapse:collapse; padding:3px">POJO集合 (100)</td><td style="color:rgb(69,69,69); font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; border:1px solid silver; border-collapse:collapse; padding:3px">4.48毫秒</td></tr><tr><td style="color:rgb(69,69,69); font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; border:1px solid silver; border-collapse:collapse; padding:3px">1K String</td><td style="color:rgb(69,69,69); font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; border:1px solid silver; border-collapse:collapse; padding:3px">1.0毫秒</td></tr><tr><td style="color:rgb(69,69,69); font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; border:1px solid silver; border-collapse:collapse; padding:3px">100K String</td><td style="color:rgb(69,69,69); font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; border:1px solid silver; border-collapse:collapse; padding:3px">3.3毫秒</td></tr><tr><td style="color:rgb(69,69,69); font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; border:1px solid silver; border-collapse:collapse; padding:3px">1M String</td><td style="color:rgb(69,69,69); font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; border:1px solid silver; border-collapse:collapse; padding:3px">18.09毫秒</td></tr></tbody></table>
D、RMI 协议、netty 传输、java 序列化
<dubbo:protocol name="rmi" server="netty" port="1099" serialization="java" />
<table border="1" style="border:1px solid silver; border-collapse:collapse; word-break:break-word; width:300px"><tbody><tr><td width="150" style="color:rgb(69,69,69); font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; border:1px solid silver; border-collapse:collapse; padding:3px">单个POJO</td><td style="color:rgb(69,69,69); font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; border:1px solid silver; border-collapse:collapse; padding:3px">1.63毫秒</td></tr><tr><td style="color:rgb(69,69,69); font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; border:1px solid silver; border-collapse:collapse; padding:3px">POJO集合 (100)</td><td style="color:rgb(69,69,69); font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; border:1px solid silver; border-collapse:collapse; padding:3px">5.15毫秒</td></tr><tr><td style="color:rgb(69,69,69); font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; border:1px solid silver; border-collapse:collapse; padding:3px">1K String</td><td style="color:rgb(69,69,69); font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; border:1px solid silver; border-collapse:collapse; padding:3px">0.77毫秒</td></tr><tr><td style="color:rgb(69,69,69); font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; border:1px solid silver; border-collapse:collapse; padding:3px">100K String</td><td style="color:rgb(69,69,69); font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; border:1px solid silver; border-collapse:collapse; padding:3px">2.15毫秒</td></tr><tr><td style="color:rgb(69,69,69); font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; border:1px solid silver; border-collapse:collapse; padding:3px">1M String</td><td style="color:rgb(69,69,69); font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; border:1px solid silver; border-collapse:collapse; padding:3px">15.21毫秒</td></tr></tbody></table>
E、RMI 协议、netty 传输、hessian2 序列化
<dubbo:protocol name="rmi" server="netty" port="1099" serialization="hessian2" />
<table border="1" style="border:1px solid silver; border-collapse:collapse; word-break:break-word; width:300px"><tbody><tr><td width="150" style="color:rgb(69,69,69); font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; border:1px solid silver; border-collapse:collapse; padding:3px">单个POJO</td><td style="color:rgb(69,69,69); font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; border:1px solid silver; border-collapse:collapse; padding:3px">1.63毫秒</td></tr><tr><td style="color:rgb(69,69,69); font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; border:1px solid silver; border-collapse:collapse; padding:3px">POJO集合 (100)</td><td style="color:rgb(69,69,69); font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; border:1px solid silver; border-collapse:collapse; padding:3px">5.12毫秒</td></tr><tr><td style="color:rgb(69,69,69); font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; border:1px solid silver; border-collapse:collapse; padding:3px">1K String</td><td style="color:rgb(69,69,69); font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; border:1px solid silver; border-collapse:collapse; padding:3px">0.76毫秒</td></tr><tr><td style="color:rgb(69,69,69); font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; border:1px solid silver; border-collapse:collapse; padding:3px">100K String</td><td style="color:rgb(69,69,69); font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; border:1px solid silver; border-collapse:collapse; padding:3px">2.13毫秒</td></tr><tr><td style="color:rgb(69,69,69); font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; border:1px solid silver; border-collapse:collapse; padding:3px">1M String</td><td style="color:rgb(69,69,69); font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; border:1px solid silver; border-collapse:collapse; padding:3px">15.11毫秒</td></tr></tbody></table>
F、Hessian协议、servlet(tomcat容器)、hessian2 序列化
<dubbo:protocol name="hessian" port="8080" server="servlet" serialization="hessian2" />
<table border="1" style="border:1px solid silver; border-collapse:collapse; word-break:break-word; width:300px"><tbody><tr><td width="150" style="color:rgb(69,69,69); font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; border:1px solid silver; border-collapse:collapse; padding:3px">单个POJO</td><td style="color:rgb(69,69,69); font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; border:1px solid silver; border-collapse:collapse; padding:3px">1.6毫秒</td></tr><tr><td style="color:rgb(69,69,69); font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; border:1px solid silver; border-collapse:collapse; padding:3px">POJO集合 (100)</td><td style="color:rgb(69,69,69); font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; border:1px solid silver; border-collapse:collapse; padding:3px">5.98毫秒</td></tr><tr><td style="color:rgb(69,69,69); font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; border:1px solid silver; border-collapse:collapse; padding:3px">1K String</td><td style="color:rgb(69,69,69); font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; border:1px solid silver; border-collapse:collapse; padding:3px">1.88毫秒</td></tr><tr><td style="color:rgb(69,69,69); font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; border:1px solid silver; border-collapse:collapse; padding:3px">100K String</td><td style="color:rgb(69,69,69); font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; border:1px solid silver; border-collapse:collapse; padding:3px">5.52毫秒</td></tr><tr><td style="color:rgb(69,69,69); font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; border:1px solid silver; border-collapse:collapse; padding:3px">1M String</td><td style="color:rgb(69,69,69); font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; border:1px solid silver; border-collapse:collapse; padding:3px">39.87毫秒</td></tr></tbody></table>
G、WebService协议、servlet(tomcat容器)、SOAP序列化
<dubbo:protocol name="webservice" port="8080" server="servlet" />
<table border="1" style="border:1px solid silver; border-collapse:collapse; word-break:break-word; width:300px"><tbody><tr><td width="150" style="color:rgb(69,69,69); font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; border:1px solid silver; border-collapse:collapse; padding:3px">单个POJO</td><td style="color:rgb(69,69,69); font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; border:1px solid silver; border-collapse:collapse; padding:3px">7.4毫秒</td></tr><tr><td style="color:rgb(69,69,69); font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; border:1px solid silver; border-collapse:collapse; padding:3px">POJO集合 (100)</td><td style="color:rgb(69,69,69); font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; border:1px solid silver; border-collapse:collapse; padding:3px">34.39毫秒</td></tr><tr><td style="color:rgb(69,69,69); font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; border:1px solid silver; border-collapse:collapse; padding:3px">1K String</td><td style="color:rgb(69,69,69); font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; border:1px solid silver; border-collapse:collapse; padding:3px">6.0毫秒</td></tr><tr><td style="color:rgb(69,69,69); font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; border:1px solid silver; border-collapse:collapse; padding:3px">100K String</td><td style="color:rgb(69,69,69); font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; border:1px solid silver; border-collapse:collapse; padding:3px">7.43毫秒</td></tr><tr><td style="color:rgb(69,69,69); font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; border:1px solid silver; border-collapse:collapse; padding:3px">1M String</td><td style="color:rgb(69,69,69); font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; border:1px solid silver; border-collapse:collapse; padding:3px">34.61毫秒</td></tr></tbody></table>
4、性能对比
![](https://img-blog.csdn.net/20161128103723998?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
六、线程测试
1、由于测试机器配置较低,为了避免达到CPU瓶颈,测试设定服务消费方Consumer并发10个线程,每个线程连续对远程方法执行5次调用,服务提供方设置允许最大连接数100个,同时5个连接并行执行,超时时间设置为5000ms, 要求所有事务都能正确返回没有异常,统计包含首次建立连接的消耗时间。
2、服务消费方测试代码
2、测试数据耗时记录
A、dubbo 协议、netty 传输、hessian2 序列化
<dubbo:protocol name="dubbo" server="netty" port="30001" serialization="hessian2" />
<table border="1" style="border:1px solid silver; border-collapse:collapse; word-break:break-word; width:300px"><tbody><tr><td width="150" style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; color:rgb(69,69,69); border:1px solid silver; border-collapse:collapse; padding:3px">单个POJO</td><td style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; color:rgb(69,69,69); border:1px solid silver; border-collapse:collapse; padding:3px">1165毫秒</td></tr><tr><td style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; color:rgb(69,69,69); border:1px solid silver; border-collapse:collapse; padding:3px">POJO集合 (100)</td><td style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; color:rgb(69,69,69); border:1px solid silver; border-collapse:collapse; padding:3px">1311毫秒</td></tr><tr><td style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; color:rgb(69,69,69); border:1px solid silver; border-collapse:collapse; padding:3px">1K String</td><td style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; color:rgb(69,69,69); border:1px solid silver; border-collapse:collapse; padding:3px">1149毫秒</td></tr><tr><td style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; color:rgb(69,69,69); border:1px solid silver; border-collapse:collapse; padding:3px">100K String</td><td style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; color:rgb(69,69,69); border:1px solid silver; border-collapse:collapse; padding:3px">1273毫秒</td></tr><tr><td style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; color:rgb(69,69,69); border:1px solid silver; border-collapse:collapse; padding:3px">1M String</td><td style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; color:rgb(69,69,69); border:1px solid silver; border-collapse:collapse; padding:3px">2141毫秒</td></tr></tbody></table>
B、dubbo 协议、netty 传输、dubbo 序列化
<dubbo:protocol name="dubbo" server="netty" port="30001" serialization="dubbo" />
<table border="1" style="border:1px solid silver; border-collapse:collapse; word-break:break-word; width:300px"><tbody><tr><td width="150" style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; color:rgb(69,69,69); border:1px solid silver; border-collapse:collapse; padding:3px">单个POJO</td><td style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; color:rgb(69,69,69); border:1px solid silver; border-collapse:collapse; padding:3px">1220毫秒</td></tr><tr><td style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; color:rgb(69,69,69); border:1px solid silver; border-collapse:collapse; padding:3px">POJO集合 (100)</td><td style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; color:rgb(69,69,69); border:1px solid silver; border-collapse:collapse; padding:3px">1437毫秒</td></tr><tr><td style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; color:rgb(69,69,69); border:1px solid silver; border-collapse:collapse; padding:3px">1K String</td><td style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; color:rgb(69,69,69); border:1px solid silver; border-collapse:collapse; padding:3px">1145毫秒</td></tr><tr><td style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; color:rgb(69,69,69); border:1px solid silver; border-collapse:collapse; padding:3px">100K String</td><td style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; color:rgb(69,69,69); border:1px solid silver; border-collapse:collapse; padding:3px">1253毫秒</td></tr><tr><td style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; color:rgb(69,69,69); border:1px solid silver; border-collapse:collapse; padding:3px">1M String</td><td style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; color:rgb(69,69,69); border:1px solid silver; border-collapse:collapse; padding:3px">2065毫秒</td></tr></tbody></table>
C、dubbo 协议、netty 传输、java 序列化
al,Helvetica,sans-serif; color:rgb(69,69,69); border:1px solid silver; border-collapse:collapse; padding:3px">2065毫秒</td></tr></tbody></table>
C、dubbo 协议、netty 传输、java 序列化