C++库研究笔记——Linux下是否需要使用memory pool?
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?的更多相关文章
- 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 ...
- Linux下编译使用boost库:
Boost是什么不多说, 下面说说怎样在Linux下编译使用Boost的所有模块. 1. 先去Boost官网下载最新的Boost版本, 我下载的是boost_1_56_0版本, 解压. 2. 进入解压 ...
- 如何在Linux下添加函数库
如何为Linux增加库一. 静态库在Linux下的静态库是以.a为后缀的文件.1. 建静态库h1.c 源文件#include<stdio.h>void hello1(){printf(“t ...
- boost.asio学习笔记一、linux下boost库的安装
欢迎转载,转载请注明原文地址:http://blog.csdn.net/majianfei1023/article/details/46761029 学习开源库第一步就是编译安装好库,然后执行成功一个 ...
- 怎样在Windows和Linux下写相同的代码
目前,Linux在国内受到了越来越多的业内人士和用户的青睐.相信在不久的将来,在国内为Linux开发 的应用软件将会有很大的增加(这不,金山正在招兵买马移植WPS呢).由于未来将会是Windows和L ...
- windows和linux下如何对拍
对拍是各种计算机考试检查时必备工具,实际上十分强大,只要你的暴力没有写错就没有问题. 对拍的意思:(怎么有点语文课的意思雾) 对:看见'对'就可以知道有两个. 拍:就是把两个程序结果拍在一起,对照(有 ...
- [转]Linux下g++编译与使用静态库(.a)和动态库(.os) (+修正与解释)
在windows环境下,我们通常在IDE如VS的工程中开发C++项目,对于生成和使用静态库(*.lib)与动态库(*.dll)可能都已经比较熟悉,但是,在linux环境下,则是另一套模式,对应的静态库 ...
- linux 下添加库的加载路径的方式
linux 下有两种添加加载库路径的方式: 1.修改环境变量: export LD_LIBRARY_PATH=path_name 2.修改配置文件 修改 /etc/ld.so.conf 的内容在最后添 ...
- windows下的c语言和linux 下的c语言以及C标准库和系统API
1.引出我们的问题? 标准c库都是一样的!大家想必都在windows下做过文件编程,在linux下也是一样的函数名,参数都一样.当时就有了疑问,因为我们非常清楚 其本质是不可能一样的,源于这是俩个操作 ...
随机推荐
- cursor 与refcursor及sys_refcursor的区别 (转载)
楼主标明是转载的,我只把我转载的地址发上来 http://www.cnblogs.com/honliv/archive/2011/07/21/2112639.html 显式是相对与隐式cursor而言 ...
- UICollectionView设置item(cell)之间间距为0(紧挨在一起的效果)
UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init]; self.layout = layout ...
- java_reflect_01
最近学习java开始接触到了框架,突然觉得java反射很重要,因此在这里做了一些总结(参考园中大苞米大神的文章) 首先我们要认识一下Class: 一.Class类有什么用? class类的实例表示ja ...
- [Head First设计模式笔记]----命令模式
命令模式定义:将“请求”封装成对象,以便使用不同的请求.队列或者日志来参数化其他对象.命令模式也支持可撤销的操作. 类图: 适用设计方案举例:实现一种遥控器,该遥控器具有七个可编程的插槽(每个都可以指 ...
- #include<unistd.h>存在linux中,含有系统服务的函数
#include<unistd.h> linux标准库#include <unistd.h>与windows的#include <windows.h>(C语言开发) ...
- linux c下几种定时器实现
1.alarm n秒后触发一次,不是循环的2.setitimer 可以发出3种信号给自己,3.timerfd 这个接口基于文件描述符,通过文件描述符类似epoll那种的可读事件进行超时通知,能够被用于 ...
- 文件操作1-php
is_file (PHP 3, PHP 4, PHP 5) is_file -- 判断给定文件名是否为一个正常的文件 说明 bool is_file ( string filename ) 如果文件存 ...
- jQuery中的阻止默认行为
在很多元素中都存在默认行为,例如表单中的submit按钮,a标签等等.如果想要消除其中的默认行为,就需要一个事件event的方法来消除他们的默认行为. 这个方法就是event.preventDefau ...
- CSS3中更灵活的布局方式
flex是一个灵活性强的布局方式,它能够很好的控制内部元素的宽度,高度或者剩余的空间部分,来适应不同的显示设备和不同的屏幕尺寸,而真正达到一种自适应效果. flex布局与常规布局截然不同,常规布局虽然 ...
- php网站判断用户是否是手机访问的方法
PHP网站判断用户是否用手机访问,如果是手机的话,就跳转到指定的手机友好页面.随着移动设备的普及,网站也会迎来越来越多移动设备的访问.用适应PC的页面,很多时候对手机用户不友好,那么有些时候,我们需要 ...