博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
内存池和tcmalloc的性能比较
阅读量:6242 次
发布时间:2019-06-22

本文共 1310 字,大约阅读时间需要 4 分钟。

这次使用的内存池是原公司的,利用hash_map做的,大概的接口是这样:

template 
class ObjectPool{ public: typedef hash_map
BlockMap; virtual int pop(CObject *&ob); virtual int push(const CObject *ob); private: BlockMap _block_map;};

写测试代码比较了一下内存池和tcmalloc的差距!结果挺让人吃惊!

#define MAX_SIZE 50000struct MsgToPut{	 UINT _wr_ptr;	 UINT _rd_ptr;	 UINT _length;	 CHAR _base[1024];	 void reset()	 {		 this->_rd_ptr = this->_wr_ptr = 0;		 this->_length = 1024;	 }};ObjectPool
MsgPool;void* newthread(void* argv){ long long int start = get_os_system_time(); for(int i=0;i
reset(); } start = get_os_system_time(); printf("newthread tc malloc :%d\n",start - end); return (void*)0;}int main(){ pthread_t pid; pthread_create(&pid,NULL,newthread,NULL); pthread_create(&pid,NULL,newthread,NULL); pthread_create(&pid,NULL,newthread,NULL); long long int start = get_os_system_time(); for(int i=0;i
reset(); } start = get_os_system_time(); printf("main tc malloc :%d\n",start - end); return 0;}

普遍打印数据为:

newthread ObjectPool:189

newthread ObjectPool:202
newthread tc malloc :24
newthread tc malloc :20
main ObjectPool:235
newthread ObjectPool:235
main tc malloc :21
newthread tc malloc :22

转载于:https://www.cnblogs.com/archy_yu/archive/2013/03/25/2980196.html

你可能感兴趣的文章
博客园今天将排名计算错误了
查看>>
Linux 关机和重启命令
查看>>
测试框架设计:初步
查看>>
[LeetCode] Meeting Rooms
查看>>
Python——eventlet.event
查看>>
sas函数
查看>>
BZOJ2654 & 洛谷2619:tree——题解
查看>>
BZOJ3571 & 洛谷3236:[HNOI2014]画框——题解
查看>>
BZOJ4104:[Thu Summer Camp 2015]解密运算——题解
查看>>
BZOJ2821:作诗——题解
查看>>
2019中国爱分析数据智能高峰论坛(北京)
查看>>
oracle数据库安装的注意事项
查看>>
【总结整理】微信7年起起伏伏的理解
查看>>
Javascript多线程引擎(九)
查看>>
Handler和AsyncTask
查看>>
Microbit Turnipbit 孩子也能做的声光控开关
查看>>
通过SHELL并发获下载数据
查看>>
web安全之SQL注入---第三章 如何寻找sql注入?
查看>>
JAVA通过继承Thread来创建线程
查看>>
C#控制台"*"绘制空心菱形
查看>>