您的位置:首页 > 其它

使用Tcmalloc的性能测试结果报告,比malloc有大幅度提高

2014-04-15 21:18 597 查看
使用Tcmalloc的性能测试结果

今天研究了一下tcmalloc的使用,感觉效果惊人,很是激动,特此写出来以飨读者。关于tcmalloc的介绍,参考文章:TCMalloc:线程缓存的Malloc,是从google官方网站翻译出来的。

Tcmalloc的使用很简单,只需要-ltcmalloc_minimal即可。

测试代码:

#include <stdlib.h>

#include <stdio.h>

#include <unistd.h>

#include <time.h>

#include <sys/time.h>

#include <pthread.h>

#define MAX_COUNT 1000*1000

void fun(int i)

{

char* ptr = (char*)malloc(i);

free(ptr);

}

void* fun_thread(void*)

{

int i = 0;

int j = 1;

while(i++<MAX_COUNT)

{

j ++;

fun(j);

if ( j>1024 )

j = 1;

}

}

#define MSECOND 1000000

int main()

{

struct timeval tpstart,tpend;

float timeuse;

gettimeofday(&tpstart,NULL);

pthread_t _deliver_t;

pthread_create(&_deliver_t, NULL, fun_thread, NULL);

int i = 0;

int j = 1;

while(i++<MAX_COUNT)

{

j ++;

fun(i);

if ( j > 1024 )

j = 1;

//usleep(1);

}

gettimeofday(&tpend,NULL);

timeuse=MSECOND*(tpend.tv_sec-tpstart.tv_sec)+tpend.tv_usec-tpstart.tv_usec;

timeuse/=MSECOND;

printf("Used Time:%f\n", timeuse);

return 0;

}

测试结果很是诱人:

[root@localhost test]# g++ 1.c -o 1 -lpthread

[root@localhost test]# ./1

Used Time:5.336594

[root@localhost test]# g++ 1.c -o 1 -lpthread -ltcmalloc_minimal

[root@localhost test]# ./1

Used Time:0.208050

提高了几十倍!当然测试的条件不是很完整,但是可以肯定tcmalloc效率提高了很多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: