zoukankan      html  css  js  c++  java
  • 内存池01

    c/c++ 的内存分配(通过malloc或new)可能很耗时。

    更糟糕的是,随着时间的流逝,内存(memory)将形成碎片,

    所以一个应用程序的运行会越来越慢,当它运行了很长时间和/或执行了很多内存分配释放操作的时候。

    特别是,你频繁的申请很小的一块内存,堆(heap)会变成碎片的。

    解决方案:你自己的内存池

    一个(可能的)解决方法是内存池(Memory Pool)。
    在启动的时候,一个”内存池”(Memory Pool)分配一块很大的内存,并将会将这个大块(block)分成较小的块(smaller chunks)。每次你从内存池申请内存空间时,它会从先前已经分配的块(chunks)中得到,而不是从操作系统。最大的优势在于:
    l 非常少(几没有) 堆碎片
    l 比通常的内存申请/释放(比如通过malloc, new等)的方式快
    另外,你可以得到以下好处:
    l 检查任何一个指针是否在内存池里
    l 写一个”堆转储(Heap-Dump)”到你的硬盘(对事后的调试非常有用)
    l 某种”内存泄漏检测(memory-leak detection)”:当你没有释放所有以前分配的内存时,内存池(Memory Pool)会抛出一个断言(assertion).
  • 相关阅读:
    jq常用操作
    Vue过滤器
    NodeJS跨域问题
    js获取url参数(通用方法)
    jq动画实现左右滑动
    vue-cli3.0 gui(一)
    微信小程序无法定位
    java连接数据库报了ssl连接的警告
    node——module.exports
    node——Commonjs
  • 原文地址:https://www.cnblogs.com/wainiwann/p/6845785.html
Copyright © 2011-2022 走看看