文档章节

内存池和tcmalloc的性能比较

shzwork
 shzwork
发布于 07/24 07:09
字数 278
阅读 14
收藏 0

      最近在测试tcmalloc性能的时候发现了一个现象!!!!就是new似乎很消耗性能!!直接上代码!

       

#include "time.h"

#include <gperftools/tcmalloc.h>

using namespace std;

 

 

#define MAX_SIZE 500000

 

//MsgDuplex _msg_list;

 

struct MsgToPut

{

     UINT _wr_ptr;

     UINT _rd_ptr;

     UINT _length;

     CHAR _base[1024];

};

 

 

 

int main()

{

        long long int start = get_os_system_time();

 

    MessageBlock* mbs[MAX_SIZE];

 

    for(int i=0;i<MAX_SIZE;i++)

    {

        mbs[i] = new MessageBlock(1024);

        delete mbs[i];

    }

 

    long long int end = get_os_system_time();

 

    printf("%d\n",end - start);

 

    MsgToPut* mtp[MAX_SIZE];

 

    for(int i=0;i<MAX_SIZE;i++)

    {

        mtp[i] = (MsgToPut*)tc_malloc(sizeof(MsgToPut));

        tc_delete(mtp[i]);

    }

 

    start = get_os_system_time();

 

    printf("%d\n",start - end);

 

 

 

    return 0;

}

  MessageBlock 在博文http://www.cnblogs.com/archy_yu/archive/2012/09/07/2674909.html中有介绍!!!

 我们看下打印数据!

28
10

 既然new在执行的时候运行了构造函数,那么我们也做一个reset操作; 并且在每次mtp[i] = (MsgToPut*)tc_malloc(sizeof(MsgToPut));之后执行reset函数,但是效果影响不大,打印数据为:

28

12

new 相比malloc 和 tcmalloc要消耗性能!!!而且很客观!!!

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

shzwork
粉丝 15
博文 826
码字总数 11168
作品 0
厦门
私信 提问
用google-perftool分析程序的内存/CPU使用

最近,用到了google-perftool分析程序的内存和CPU的使用情况,总结一下使用的一些方法和体会,分享给有需要的朋友。首先,说说google-perftool,它是由google开发的用来分析C/C++程序性能的一...

彼得
2012/09/17
539
0
深入了解tcmalloc(一):windows环境下无缝拦截技术初探

概述: 又到了一个总结提炼的阶段,这次想具体聊聊游戏引擎中使用的内存管理模块tcmalloc组件的使用心得。项目的前期曾经遇到过内存瓶颈,特别是windows系统下的客户端程序在经历长时间运行之...

窗台跳舞的猫
2014/06/03
5.2K
2
TCMalloc优化MySQL、Nginx、Redis内存管理

TCMalloc(Thread-Caching Malloc)与标准glibc库的malloc实现一样的功能,但是TCMalloc在效率和速度效率都比标准malloc高很多。TCMalloc是 google-perftools工具中的一个(gperftools四个工具...

lj2007331
2013/09/02
896
0
MongoDB 如何使用内存?

最近接到多个MongoDB内存方面的线上case及社区问题咨询,主要集中在: 为什么我的 MongoDB 使用了 XX GB 内存? 一个机器上部署多个 Mongod 实例/进程,WiredTiger cache 应该如何配置? Mong...

张友东
01/08
0
0
内存管理TCMalloc 安装和使用

TCMalloc(Thread-Caching Malloc)与标准glibc库的malloc实现一样的功能,但是TCMalloc在效率和速度效率都比标准malloc高很多。TCMalloc是google-perftools工具中的一个(gperftools四个工具分...

59090939
2018/06/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

拯救 项目经理个人时间的5个技巧

优秀的项目经理都有一个共同点,那就是良好的时间管理能力。专业的项目经理会确保他们的时间投入富有成效,尽可能避免时间浪费。 时间管理叫做GTD,即Getting Things Done——“把事情做完”...

Airship
24分钟前
4
0
前端技术之:Prisma Demo服务部署过程记录

安装前提条件: 1、已经安装了docker运行环境 2、以下命令执行记录发生在MackBook环境 3、已经安装了PostgreSQL(我使用的是11版本) 4、Node开发运行环境可以正常工作 首先需要通过Node包管...

popgis
今天
5
0
数组和链表

数组 链表 技巧一:掌握链表,想轻松写出正确的链表代码,需要理解指针获引用的含义: 对指针的理解,记住下面的这句话就可以了: 将某个变量赋值给指针,实际上就是将这个变量的地址赋值给指...

code-ortaerc
今天
4
0
栈-链式(c/c++实现)

上次说“栈是在线性表演变而来的,线性表很自由,想往哪里插数据就往哪里插数据,想删哪数据就删哪数据...。但给线性表一些限制呢,就没那么自由了,把线性表的三边封起来就变成了栈,栈只能...

白客C
今天
43
0
Mybatis Plus service

/** * @author beth * @data 2019-10-20 23:34 */@RunWith(SpringRunner.class)@SpringBootTestpublic class ServiceTest { @Autowired private IUserInfoService iUserInfoS......

一个yuanbeth
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部