文档章节

内存池(Memory Pool)

QMonkey
 QMonkey
发布于 2014/06/17 21:43
字数 402
阅读 56
收藏 0
内存池是一种内存分配方式。
在C和C++里,经常使用malloc,free,new,delete分配或释放内存。这样做的缺点是: 由于所申请的内存块大小不一定,当频繁使用这些函数或操作符时会造成内存碎片并进而降低性能。
内存池的做法是: 在真正使用内存之前,先申请分配一定数量的、大小相等(一般情况下)的内存块留作备用。当有新的内存需求时,就从内存池中分出一部分内存块,若内存块不够再继续申请新的内存。这样做的一个显著优点是有效避免了内存碎片,使得内存分配效率得到提升。


(1)针对特殊情况,例如需要频繁分配释放固定大小的内存对象时,不需要复杂的分配算法和多线程保护。也不需要维护内存空闲表的额外开销,从而获得较高性能。
(2)由于开辟了一定数量的连续内存空间作为内存块,因而一定程度提高了程序局部性,提高了性能。
(3)比较容易控制页边界对齐和内存对齐,没有内存碎片问题。
(4)当需要分配管理较小内存的时候,使用内存池会节省大量时间,否则会耗费更多时间。
(5)内存池可以防止更多的内存碎片产生
(6)更方便与内存管理


参考链接: http://en.wikipedia.org/wiki/Memory_pool

© 著作权归作者所有

共有 人打赏支持
QMonkey
粉丝 0
博文 8
码字总数 8066
作品 0
广州
私信 提问
【每日一摩斯】-Fundamentals of the Large Pool

以下内容介绍从Oracle 8引入的‘Large Pool’。 什么是Large Pool(翻译过来叫“大池”)? 大池是SGA中一块类似于shared pool的区域,但是它的使用又有严格的限制,仅有几种类型和大小的内存能...

bisal
2013/09/04
0
0
nginx源码分析—内存池结构ngx_pool_t及内存管理

本博客( http://blog.csdn.net/livelylittlefish)贴出作者(阿波)相关研究、学习内容所做的笔记,欢迎广大朋友指正! Content 0. 序 1. 内存池结构 1.1 ngx_pool_t结构 1.2 其他相关结构 ...

晨曦之光
2012/03/09
1K
0
Mysql 体系结构 和 存储引擎

前言:数据库的引擎是整个mysql数据库的核心组件,mysql的存储引擎众多,MyISAM、InnoDB、Memory、Archive等,其中InnoDB是mysql里面支持事务类型的一个存储引擎最好的一个,雅虎、facebook、...

pan_1308
2016/10/14
9
0
SQL Server 2014新特性——Buffer Pool扩展

Buffer Pool扩展 Buffer Pool扩展是buffer pool 和非易失的SSD硬盘做连接。以SSD硬盘的特点来提高随机读性能。 缓冲池扩展优点 SQL Server读以随机读为主,SQL Server IO分为2部分:buffer ...

技术小胖子
2017/11/07
0
0
在MySQL 5.7下排查内存泄露和OOM问题全过程

0、导读 我的个人网站后台使用的是MySQL 5.7版本,前段时间经常被oom-kill,借助5.7的新特性,经过一番排查,终于抓到这只鬼。 1、问题现象 我的网站前段时间经常时不时就抽风一下,提示数据...

iMySQL | 老叶茶馆
2017/03/27
0
0

没有更多内容

加载失败,请刷新页面

加载更多

[LintCode] Serialize and Deserialize Binary Tree(二叉树的序列化和反序列化)

描述 设计一个算法,并编写代码来序列化和反序列化二叉树。将树写入一个文件被称为“序列化”,读取文件后重建同样的二叉树被称为“反序列化”。 如何反序列化或序列化二叉树是没有限制的,你...

honeymose
53分钟前
5
0
java框架学习日志-7(静态代理和JDK代理)

静态代理 我们平时去餐厅吃饭,不是直接告诉厨师做什么菜的,而是先告诉服务员点什么菜,然后由服务员传到给厨师,相当于服务员是厨师的代理,我们通过代理让厨师炒菜,这就是代理模式。代理...

白话
今天
23
0
Flink Window

1.Flink窗口 Window Assigner分配器。 窗口可以是时间驱动的(Time Window,例如:每30秒钟),也可以是数据驱动的(Count Window,例如:每一百个元素)。 一种经典的窗口分类可以分成: 翻...

满小茂
今天
18
0
my.ini

1

architect刘源源
今天
16
0
docker dns

There is a opensource application that solves this issue, it's called DNS Proxy Server It's a DNS server that solves containers hostnames, if could not found a hostname that mat......

kut
今天
16
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部