mutex加锁和解锁性能测试

mutex 性能测试:
公司报废笔记本dell E4300,Ubuntu 13.04系统


mutex 加锁和解锁性能测试:

(加锁和解锁)过程,一亿次,共耗时:3883693微妙

平均时间 (3888524 * 1000/100000000 = 38.88纳秒)


在我的台式机: AMD 1100T 6核心处理器,而且是VMware 虚拟机上:

gongbo@gongbo-virtual-machine:~$ ./mutex1.o 
1762201
1762201

平均时间 (1762201 * 1000/100000000 = 17.62 纳秒)


公司生产环境的标准硬件上:

[admin@oceanbase074013 tmp]$ ./mutex1.o 
2417836

 测试程序:

// test
struct timeval dwStart;
struct timeval dwEnd;
unsigned long dwTime1=0;
unsigned long dwTime2=0;


int main(void)
{
  struct foo *fp;
  fp = foo_alloc();


  gettimeofday(&dwStart,NULL);
  for(int i=0;i< 100000000;i++)
  {
    pthread_mutex_lock(&fp->f_lock);
    pthread_mutex_unlock(&fp->f_lock);
  }
  gettimeofday(&dwEnd,NULL);
  dwTime1 = 1000000*(dwEnd.tv_sec-dwStart.tv_sec)+(dwEnd.tv_usec -dwStart.tv_usec);


  gettimeofday(&dwStart,NULL);
  for(int i=0;i< 100000000;i++)
  {
    ;   
  }
  gettimeofday(&dwEnd,NULL);
  
  dwTime2 = 1000000*(dwEnd.tv_sec-dwStart.tv_sec)+(dwEnd.tv_usec -dwStart.tv_usec);


  printf("%ld\n",dwTime1 - dwTime2); 


 return 0;
}

你可能感兴趣的:(编译,链接,库)