- 论坛徽章:
- 0
|
呵呵,正好,各位看下下面的代码测试性能有问题吗?
pthread_mutex_t fastmutex = PTHREAD_MUTEX_INITIALIZER;
struct timeval begin;
struct timeval end;
struct timeval interval;
struct timeval base;
gettimeofday(&begin,0);
for(i=0;i<EXECUTE_NUM;i++)
{
}
gettimeofday(&end,0);
timersub(&end,&begin,&base);
gettimeofday(&begin,0);
for(i=0;i<EXECUTE_NUM;i++)
{
pthread_mutex_lock(&fastmutex);
pthread_mutex_unlock(&fastmutex);
}
gettimeofday(&end,0);
timersub(&end,&begin,&interval);
timersub(&interval,&base,&interval);
printf("fast lock[%d.%d]\n",interval.tv_sec,interval.tv_usec);
gettimeofday(&begin,0);
for(i=0;i<EXECUTE_NUM;i++)
{
char *wop=new char(11);
//delete wop;
}
gettimeofday(&end,0);
timersub(&end,&begin,&interval);
timersub(&interval,&base,&interval);
printf("malloc[%d.%d]\n",interval.tv_sec,interval.tv_usec);
gettimeofday(&begin,0);
for(i=0;i<EXECUTE_NUM;i++)
{
string sdsd(pp);
}
gettimeofday(&end,0);
timersub(&end,&begin,&interval);
timersub(&interval,&base,&interval);
printf("string construct[%d.%d]\n",interval.tv_sec,interval.tv_usec);
结果执行时间比例是: 762:949:743
base的时间是36。
请看上述的测试有问题吗?
人云亦云的事情还没干过,整天忙着写代码,低劣的经验谈从来不屑一顾,就像我不能相信锁的开销不能测试一样。
忘了说明,这里EXECUTE_NUM我取的是10000,再大100倍对测试的结果没影响,类似的。
[ 本帖最后由 voipexplore 于 2008-7-31 13:53 编辑 ] |
|