std::mutex的使用备忘

在实际测试中,std::mutex与自实现自旋锁在效率上相近,但在竞争激烈时,std::mutex的lock会导致CPU利用率高。使用trylock可降低CPU负载,但效率下降约15%。测试基于4C16G硬件。

在实际测试中,与使用自实现的自旋做同步比较(看上也是自旋),std::mutex在效率上没有大的差异。

但是当出现竞争时,std::mutex的lock会完全的等待,此时CPU利用率会很高,当然其等待也是有收益的:效率最高。

 

但是,在一般的应用里,我们能查看任何管理器时,我们总是蜜汁不希望CPU满载(不想让风扇狂转?)

 

降低CPU负载的套路是:使用trylock。不光出让时间片,还得退出竞争。

当然,随之带来的也是效率的下降(-15%?)

 

我们的测试是基于4C16G硬件。

应用的测试方案是下图(3P3C):

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值