提交订单性能优化系列之016-缓存商品


概括总结

这一版测试把商品信息存在内存中,而不是每次都查询数据库。结果是:查询缓存比查询数据库的性能好5.28%


016版本更新说明

Version016NoCache.java:没有缓存,查数据库的版本。

Version016WithCache.java:直接查询缓存的版本。

GoodsCache.java:简单的商品缓存类。


测试结果

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

Version016NoCache 提交每个订单平均耗时的纳秒数: 4674079

Version016WithCache 提交每个订单平均耗时的纳秒数: 4330435

Version016NoCache 每秒钟可以提交的订单数: 214

Version016WithCache 每秒钟可以提交的订单数: 232

性能差别为:(4674079 - 4330435) / 4330435 * 100% = 3.65%,即 “查询缓存” 比 “查询数据库” 性能好5.28%

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


测试结果说明

查缓存当然会比查数据库性能好一些。这次测试的目的不是为了证明它好,而是为了测试到底好多少。

值得一提的是,由于我们在这个系列的第011篇已经放弃在Java代码中同步验证库存,因此GoodsCache.java类中没有使用synchronized来约束。(一旦使用了synchronized来约束,性能会比查询数据库还要低)。


源码

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值