我有一些代码等待共享内存上的写操作。如果没有人写,它会继续等待。
Test* Foo::Get()
{
boost::interprocess::scoped_lock<boost::interprocess::interprocess_mutex> lock ( mutex ) ; // mutex is boost::interprocess::interprocess_mutex
if ( this->check == 0 )
this->interprocessCondition.wait ( lock ) ; // interprocessCondition is boost::interprocess::interprocess_condition
...
}
当我进行采样时,我发现它消耗了大约 90% 的 CPU。
有人可以帮我解决这个性能问题吗?请看附图。