Linux Slab分配器(一)--概述

Linux slab 分配器剖析

做了一些测试:发现linux使用内存池与否没有明显差别,仅仅有2倍。 Linux内存处理机制已经很好,一般情况下,确实没有必要在用内存池??? 不知道大家持什么样的观点。

速度测试:

In [use pool]:0.00560116768 seconds
In [ no pool]:0.00855708122 seconds

In [use pool]:0.00404405594 seconds
In [ no pool]:0.00921702385 seconds

In [use pool]:0.0060069561 seconds
In [ no pool]:0.0129909515 seconds

In [use pool]:0.00984287262 seconds
In [ no pool]:0.0179138184 seconds

In [use pool]:0.00937509537 seconds
In [ no pool]:0.0222010612 seconds

In [use pool]:0.0128059387 seconds
In [ no pool]:0.0269629955 seconds

In [use pool]:0.0170590878 seconds
In [ no pool]:0.0312800407 seconds

In [use pool]:0.0199379921 seconds
In [ no pool]:0.0355689526 seconds

In [use pool]:0.0220119953 seconds
In [ no pool]:0.0396490097 seconds

In [use pool]:0.0250389576 seconds
In [ no pool]:0.0438430309 seconds

02:36:16:~/../pool_test$ vim MainFile.cpp

g++ MemPool.o TestClass.o MainFile.cpp -o main -O3

Press ENTER or type command to continue
02:37:21:~/../pool_test$ ./main 
In [use pool]:0.000194072723 seconds
In [ no pool]:0.000468015671 seconds

In [use pool]:0.000373125076 seconds
In [ no pool]:0.000900030136 seconds

In [use pool]:0.000594139099 seconds
In [ no pool]:0.00134897232 seconds

In [use pool]:0.000751018524 seconds
In [ no pool]:0.00190091133 seconds

In [use pool]:0.000940084457 seconds
In [ no pool]:0.0022559166 seconds

In [use pool]:0.00139307976 seconds
In [ no pool]:0.00420188904 seconds

In [use pool]:0.00148892403 seconds
In [ no pool]:0.00316882133 seconds

In [use pool]:0.00165891647 seconds
In [ no pool]:0.00361800194 seconds

In [use pool]:0.00178599358 seconds
In [ no pool]:0.00484013557 seconds

In [use pool]:0.0184268951 seconds
In [ no pool]:0.0416920185 seconds

In [use pool]:0.0186669827 seconds
In [ no pool]:0.043035984 seconds

In [use pool]:0.0192191601 seconds
In [ no pool]:0.0422170162 seconds

In [use pool]:0.0193469524 seconds
In [ no pool]:0.0423469543 seconds

In [use pool]:0.0193350315 seconds
In [ no pool]:0.0422008038 seconds

In [use pool]:0.0196199417 seconds
In [ no pool]:0.0431320667 seconds

In [use pool]:0.0197191238 seconds
In [ no pool]:0.0441551208 seconds

In [use pool]:0.0201468468 seconds
In [ no pool]:0.0435791016 seconds

C++库研究笔记——Linux下是否需要使用memory pool?的更多相关文章

  1. linux 下tomcat出现 Native memory allocation (malloc) failed to allocate 1915224064 bytes for committing reserved memory问题

    ## There is insufficient memory for the Java Runtime Environment to continue.# Native memory allocat ...

  2. Linux下编译使用boost库:

    Boost是什么不多说, 下面说说怎样在Linux下编译使用Boost的所有模块. 1. 先去Boost官网下载最新的Boost版本, 我下载的是boost_1_56_0版本, 解压. 2. 进入解压 ...

  3. 如何在Linux下添加函数库

    如何为Linux增加库一. 静态库在Linux下的静态库是以.a为后缀的文件.1. 建静态库h1.c 源文件#include<stdio.h>void hello1(){printf(“t ...

  4. boost.asio学习笔记一、linux下boost库的安装

    欢迎转载,转载请注明原文地址:http://blog.csdn.net/majianfei1023/article/details/46761029 学习开源库第一步就是编译安装好库,然后执行成功一个 ...

  5. 怎样在Windows和Linux下写相同的代码

    目前,Linux在国内受到了越来越多的业内人士和用户的青睐.相信在不久的将来,在国内为Linux开发 的应用软件将会有很大的增加(这不,金山正在招兵买马移植WPS呢).由于未来将会是Windows和L ...

  6. windows和linux下如何对拍

    对拍是各种计算机考试检查时必备工具,实际上十分强大,只要你的暴力没有写错就没有问题. 对拍的意思:(怎么有点语文课的意思雾) 对:看见'对'就可以知道有两个. 拍:就是把两个程序结果拍在一起,对照(有 ...

  7. [转]Linux下g++编译与使用静态库(.a)和动态库(.os) (+修正与解释)

    在windows环境下,我们通常在IDE如VS的工程中开发C++项目,对于生成和使用静态库(*.lib)与动态库(*.dll)可能都已经比较熟悉,但是,在linux环境下,则是另一套模式,对应的静态库 ...

  8. linux 下添加库的加载路径的方式

    linux 下有两种添加加载库路径的方式: 1.修改环境变量: export LD_LIBRARY_PATH=path_name 2.修改配置文件 修改 /etc/ld.so.conf 的内容在最后添 ...

  9. windows下的c语言和linux 下的c语言以及C标准库和系统API

    1.引出我们的问题? 标准c库都是一样的!大家想必都在windows下做过文件编程,在linux下也是一样的函数名,参数都一样.当时就有了疑问,因为我们非常清楚 其本质是不可能一样的,源于这是俩个操作 ...

随机推荐

  1. WPF 弱事件

    因为在接触WPF的过程中追查INotifyPropertyChanged的通知原理的时候,发现了 PropertyChangedEventManager这个类,它是继承与WeakEventManage ...

  2. 知识点总结之HTML篇

    1.标签语义化: ①.在不依赖样式的情况下,页面能够呈现清晰的结构. ②.如果使用者有视觉障碍,屏幕阅读器会完全根据你的标记来选择读取你的网页. ③.有利于搜索引擎依赖于标记来确定上下文和各个关键字的 ...

  3. linux ulimit的使用,如何产生core文件,调试段错误

    ---恢复内容开始--- 下面先简单介绍下ulimit命令: 1. limit -a 可以查看系统各种资源的限制,如: core文件大小,数据段的大小等. $ ulimit -a core file ...

  4. Java学习----变量是什么

    1.变量必须拥有的类型 2.变量必须拥有的名字 变量:具备名字和类型的可以存放类型匹配的数据的量 public class Student { public static void main(Stri ...

  5. Spring+SpringMVC+Mybatis+MAVEN+Eclipse+项目完整环境搭建

    1.新建一个Maven项目,创建父项目. 2.创建子项目模块 3.创建javaWeb项目 4.创建后的项目目录结构 5.Maven文件配置 parent父项目pom.xml文件配置 <?xml ...

  6. underscorejs-where学习

    2.7 where 2.7.1 语法: _.where(list, predicate) 2.7.2 说明: 对list集合的每个对象依次与predicate对象进行匹配,返回一个数组(数组为匹配成功 ...

  7. linux ftp 搭建和相关问题解决

    1. 查看是否安装vsftprpm –qa|grep vsftpd如果出现 vsftpd-2.0.5-16.el5_5.1 说明已经安装 vsftp 安装vsftpyum -y install vsf ...

  8. 来晚了--SALTSTACK要弄起

    PUPPET就算了,我多少都有PYTHON基础,还是专SALTSTACK吧. 今天小玩玩,以后深入.

  9. Delphi 缩放图像代码 - 支持PNG透明通道(利用了Windows的windowscodecs.dll)

    要求Delphi2007或者更高版本, 系统要求至少XP-SP2以上 实际上是利用了Windows的windowscodecs.dll这个文件的功能 在VCL里已经封装为TWICImage类 proc ...

  10. EntityFramework 插件之EntityFramework.Extended (批量处理)

    接手了一个用EF来做的项目,由于项目中使用的原生处理,导致很多update都是采用先select 后 update的方式来实现,同时无法批量执行逻辑如:根据订单类型统一更新状态等.所以在经过了N多查找 ...