提交订单性能优化系列之015-收货地址由根据ID查询改为传参


概括总结

在电商下单时,一般都需要选择收货地址。这时候,在页面显示的信息已经包含手机号、姓名、详细地址、地址ID等信息了。那么这时候可以有两种选择,1、只把地址ID作为参数传过去,后台根据ID重新查询地址对象,对对象中获取详细信息; 2、把手机号、姓名、详细地址作为参数传过去,后台不需要查询数据库,直接使用前台传来的参数。

这两种方式的性能差异是:“传参” 比 “根据ID查询” 性能好3.65%


015版本更新说明

Version015QueryAddr.java:把地址ID作为参数,通过地址ID查询数据库,获取地址信息。

Version015ParamAddr.java:把手机号、姓名、详细地址作为参数传过去,后台不需要查询数据库,直接使用前台传来的参数。


测试结果

统计10次测试的平均值之后:

Version015QueryAddr 提交每个订单平均耗时的纳秒数: 4272820

Version015ParamAddr 提交每个订单平均耗时的纳秒数: 4122186

Version015QueryAddr 每秒钟可以提交的订单数: 235

Version015ParamAddr 每秒钟可以提交的订单数: 242

性能差别为:(4272820 - 4122186) / 4122186 * 100% = 3.65%,即 “传参” 比 “根据ID查询” 性能好3.65%

【备注】:不同的机器上的测试结果会不一样,以上测试结果仅供参考。


测试结果说明

从理论上来说,少了一次数据库查询,性能当然会好一些。这次测试的目的不是为了证明它好,而是为了测试到底好多少,是否值这么做。

3.65%并不是一个很大的数值,一般来说我对于低于5%的性能提升不是特别敏感,毕竟测试结果跟运行环境有关,有个百分之几的出入是经常的事。但是我还是会保留这一版本,即以后版本的代码中,地址信息都会以参数的方式传过去,不查询数据库了。理由是:虽然3.65%不多,但是下次如果把用户信息或者商品信息缓存起来,就又可以少查询一两次数据库了,这样累加起来,性能提升就比较可观了。


源码

015版本的github源码在这里,如果不知道怎样运行项目,请参考这里

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值