最近在测试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/22/2976137.html

关于tcmalloc\malloc和new相关推荐

  1. TCMalloc(Thread-Caching malloc) 基本设计原理

    文章目录 背景 如何使用 架构概览 1. TCMalloc Front-end 1.1 小对象和大对象的内存分配过程 1.2 内存释放过程 1.3 Per-CPU mode 1.4 Per-threa ...

  2. 利用TCMalloc替换Nginx和Redis默认glibc库的malloc内存分配

    TCMalloc的全称为Thread-Caching Malloc,是谷歌开发的开源工具google-perftools中的一个成员.与标准的glibc库的Malloc相比,TCMalloc库在内存分 ...

  3. TCMalloc:线程缓存的Malloc

    转载自: http://shiningray.cn/tcmalloc-thread-caching-malloc.html 作者:Sanjay Ghemawat, Paul Menage 原文 翻译: ...

  4. TCMalloc:线程缓存Malloc以及tcmalloc与ptmalloc性能对比

    目录 动机 用法 总览 小对象分配 大对象分配 跨度 解除分配 小型物品中央free清单 线程缓存的垃圾收集 性能说明 PTMalloc2单元测试 注意事项 推荐阅读 Paul Menage的Sanj ...

  5. TCMalloc : Thread-Caching Malloc

    TCMalloc : Thread-Caching Malloc http://goog-perftools.sourceforge.net/doc/tcmalloc.html http://blog ...

  6. 【译】TcMalloc: Thread-Caching Malloc

    TcMalloc 的核心是分层缓存,前端没有锁竞争,可以快速分配和释放较小的内存对象(一般是 256 KB)前端有两种实现,分别是 pre-CPU 和 pre-Thread 模式,前者申请一块大的连续 ...

  7. tcmalloc mysql 缓存_Tcmalloc优化Mysql内存管理

    实验环境: OS:Redhat 5.3 64bit Mysql:mysql 5.5.29 TCMalloc(Thread-Caching Malloc)与标准glibc库的malloc实现一样的功能, ...

  8. Redis源码分析-TCMalloc

    redis很多地方都在调用zmalloc函数 zmalloc在这里定义zmalloc.c void *zmalloc(size_t size) {void *ptr = malloc(size+PRE ...

  9. 在应用程序中替换Linux中Glibc的malloc的四种方法

    打算优化系统的内存分配,接管glibc提供的内存管理,但是整个工程的代码量很大,使用malloc.realloc.calloc和free的地方到处都是,如果自己写好的接口需要重命名所有的调用,先不说工 ...

最新文章

  1. HTML 全局属性(global attribute)有哪些?
  2. ios计算机隐藏功能,7个iOS14隐藏功能,看完想立马更新,有你不知道的
  3. Java 和 HTTP 的那些事(四) HTTPS 和 证书
  4. 解决安装python第三方模块 '-mno-cygwin'报错的问题
  5. 如何让控件span的id调用ajax_微服务架构之「 调用链监控 」
  6. andriod 继承view定义自己的形状
  7. linux网络编程二十:socket选项:SO_RCVTIMEO和SO_SNDTIMEO
  8. 冷热分离和直接使用大数据库_还不知道HBase冷热分离的技术原理?看这一篇就够了...
  9. Logger对象父子关系
  10. DOMContentLoaded与interactive
  11. 数据库oracle修改属性列,Oracle修改表结构
  12. Linux下Shell脚本运行程序不输出日志到终端
  13. linux多进程通过中断实现,关于Linux内核源码中是如何区别进程上下文和中断上下文...
  14. 2018达内web全套视频
  15. 基于D-S证据理论的数据融合研究与应用
  16. 一款简约大气的PHP短网址系统程序源码
  17. 使用Python face_recognition 人脸识别 - 12 人脸图片1-N比对
  18. abap SD 定价公式(例程,即Formula)
  19. Oracle 后台进程详解
  20. 解决Adobe Reader 打开PDF文件10秒左右自动关闭问题

热门文章

  1. [NBUT 1458 Teemo]区间第k大问题,划分树
  2. poj 3660 传递闭包 **
  3. 关于string,我今天科普的
  4. 转载:Apache commons开源工具简介
  5. 知识点 - 学习过程中积累
  6. 树莓派(TCP客户端 )和Wemos(TCP服务端连接红外模块)通讯实现对红外设备的控制
  7. xcode常用快捷键_Mac及Xcode常用快捷键
  8. fastq质量值_fastq 数据格式解析
  9. 分布式数据库的模式结构介绍​
  10. 写最少的代码,避免给自己找麻烦