zoukankan      html  css  js  c++  java
  • 空间的配置和释放 std::alloc

    看完了对象的构造行为和内存释放前的对象的析构行为,我们现在来看看内存的配置和释放。

    对象构造前的空间分配和析构后的空间释放,定义在头文件<stl_alloc.h>中。其设计思想是:

    • 向system heap要求空间。
    • 考虑多线程状态。
    • 考虑内存不足时的应变措施。
    • 考虑过多“小额区块”可能造成的内存碎片问题。

    C++的内存配置基本操作时::operator new(),内存释放的基本操作是::operator delete()。这是两个全局函数相当于C的malloc()和free()函数。是的,正是如此,SGI正是以malloc()和free()完成内存的配置和释放。

    考虑到小型区块可能造成的内存破碎问题,SGI设计了双层级配置器第一级配置器直接使用malloc()和free(),第二级则视情况采用不同的策略:当配置区块超过128bytes时,视之为“足够大”,便调用第一级配置器;当配置区块小于128bytes时,视之为“过小”,为。而且采用了复杂的内存池memory pool整理方式。整个设计究竟是只开放第一级配置器还是同事开放第二级配置器取决于宏__USE_MALLOC是否被定义。

  • 相关阅读:
    httpclient妙用一 httpclient作为客户端调用soap webservice(转)
    WebService学习总结(转)
    C++的override和final
    C++类const和static成员初始化
    C++数据存储方式
    C++类成员存储大小
    内联函数
    C++接口的概念
    C++深拷贝和浅拷贝
    C++构造函数以及何时被调用
  • 原文地址:https://www.cnblogs.com/wuchanming/p/4343326.html
Copyright © 2011-2022 走看看