使用命名的互斥锁增强进程间lib lib性能问题

时间:2012-08-31 15:13:27

标签: c++ performance boost interprocess

使用名为mutex的boost interprocess lib是否存在konwn问题,升级版本为1.36。

基本上我们这样做:

#define BT_MY_LOCK "XX_BT_MY_LOCK_XX"
#define WAIT_LOCK named_mutex myLock(open_or_create, BT_TICKET_LIB_LOCK);   \
boost::posix_time::ptime expire_time = microsec_clock::universal_time() + boost::posix_time::seconds(2);    \
scoped_lock<named_mutex> lock(ticketLock, expire_time); \
if (!lock.owns()) throw mutex_failure();

然后我们在需要时使用此宏。

但这似乎导致了很多不必要的C:\文件夹打开&amp;每当boost试图在C:\ drive下的temp文件夹下创建XX_BT_MY_LOCK_XX文件时关闭活动。似乎对于每个useufl XX_BT_MY_LOCK_XX文件访问,大约有25个C:\ Open,Close。

所以它看起来像是promon:

XX_BT_MY_LOCK_XX access 1 
XX_BT_MY_LOCK_XX access 2
C:\ open
C:\ close
C:\ open
C:\ close
...
repeat 25 times 
...
XX_BT_MY_LOCK_XX access 1 
XX_BT_MY_LOCK_XX access 2
C:\ open
C:\ close
C:\ open
C:\ close
...
repeat 25 times 

我只是想知道一个已知的助推问题?

0 个答案:

没有答案