提交订单性能优化系列之007-方法上加上synchronized,性能下降93%


概括总结

在一个public static的方法上加上synchronized关键字以后,相当于回到了单线程的状态,性能直线下降93.61%,一夜回到解放前。


007版本更新说明

在原来的submitOrder方法之上增加了一个submitOrderSynchronized方法,在测试时,分别调用这两个方法,统计耗时。

/** 同步提交订单 */
public static synchronized void submitOrderSynchronized(省略参数若干) throws Exception {
    submitOrder(省略参数若干); // 调用真实的提交订单的方法
}

/** 提交订单 */
public static void submitOrder(省略参数若干) throws Exception {
    // 省略真实提交订单的代码
}

测试结果

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

调用submitOrder方法时,每秒钟可以提交的订单数为:141

调用submitOrderSynchronized方法时,每秒钟可以提交的订单数为:9

性能下降比例: (141 - 9) / 141 * 100% = 93.61%

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


补充说明

在正常项目中开发时,不可能把一个提交订单的方法设置为public static的,所以这一版本的测试仅仅只是个示例,只是出于好奇想看看结果是怎样的,没有任何参考价值。


源码

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值