内存分区与具体介绍:

1. 内存分区图:

2. 分区介绍:

2.1. 栈区:

存放:临时的局部变量、函数的传参

特点:占用内存小,速度快

          数据的存储和释放采用栈式结构,先入后出,类似于C++下类的构造析构函数

2.2. 堆区:

存放:程序员malloc、new的动态内存变量

特点:

  1. 内存空间较栈来说相当大,但运行速度相比栈慢
  2. 采用链式结构连接空闲的内存碎片
  3. 动态申请的内存由程序员操作释放(free、delete),除此之外在程序结束时或关机的情况下申请内存才会被收回,否则将出现严重的内存泄露事故

2.3. 可读写区:

存放:静态变量和全局变量

已初始化的处于data区;未初始化的数据处于bss区;

特点:结束后由系统收回

2.4. 只读区:

存放:常量、程序编译过的可执行二进制代码

特点:在程序运行的时候数据不允许被修改

3. 栈和堆的比对:

堆:

栈:

由程序员自行申请分配,速度较慢

由系统自动分配内存空间,速度较快

使用结束后,需要人为释放申请的内存,避免内存泄漏

关机或者程序关闭时,内存才会被释放

在函数的生命周期结束后,由系统自动收回

在Windows系统中,链式结构由地址向高地址延申

在Windows系统中,栈式结构由地址向低地址延申

不连续的内存区域

堆的获取空间受限于操作系统的虚拟内存空间

是一块连续固定大小的内存空间:规定栈的大小为2M

可获取空间较灵活,可以获取较大空间

可以获取的栈空间较小,申请过大空间产生栈溢出的错误

4. 虚拟内存:

  1. 虚拟内存是计算机系统内存管理的一种技术。当系统物理内存不够使用时,将硬盘上的部分空间当做内存(RAM)使用,使得计算机可以运行更多的应用程序。
  2. Windows系统中,虚拟内存在硬盘上是为一个比较大的文件,文件大小即虚拟内存的大小,文件名是PageFile.Sys
  3. 虚拟内存并不是备用内存

5. 备用内存:

  1. 备用内存,备用内存本来是空闲的内存,微软想让这部分内存也发挥作用,就把硬盘上常用的文件缓存到这里,无需从硬盘进行读取,以此提高性能。这部分缓存的内存就是备用内存。
  2. 若可用内存不足以运行新的任务,备用内存将会为新的任务释放空间。这个方案理论上是可行的,既提高了性能,也不会影响内存的使用。但问题在于,备用内存有时会占用过高不会自动释放,据说是系统很久以来便存在的Bug,至今(Win11)也没有解决。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/731348.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

在Linux(Ubuntu)中使用终端编译 vscode安装

文章目录 📚在Linux(Ubuntu)中使用终端编译🐇.cpp程序编译🐇.py程序编译🐇查看Python、C编程环境 📚vscode安装 📚在Linux(Ubuntu)中使用终端编译 虚拟机安装…

移动端精准测试之跨版本覆盖率合并

一,项目简介 在移动端项目测试过程中,尤其是发版前的回归测试阶段,会遇到这样的情况,在测试过程中测试不断地发现问题,开发就进行修改,然后打包测试。而测试完成后呢,业务测试同学想知道整个回归…

Qt 5.14.2 网络编程揭秘:构建高效HTTP客户端与文件下载器

引言 在当今的软件开发世界中,网络通信已成为不可或缺的一部分。Qt,作为一个跨平台的C框架,为我们提供了强大的网络编程能力。本文将带你深入Qt的网络模块,探索如何使用QNetworkAccessManager、QNetworkRequest和QNetworkReply等核…

【HarmonyOS】ArkTS-对象方法

目录 对象方法实例 对象方法 方法作用:描述对象的具体行为 约定方法类型 interface 接口名称 { 方法名: (参数:类型) > 返回值类型 }interface Person{dance: () > voidsing: (song: string) > void}添加方法(箭头函数) let ym: P…

微前端之再说无界的使用

运行模式 保活模式单例模式重建模式 生命周期改造 改造入口函数: 应用间通信 原理props 通信 主应用可以通过 props 注入数据和方法:子应用可以通过 $wujie 对象来获取数据: window 通信 主应用调用子应用的全局数据:子应用调用主…

lvs集群中NAT模式

群集的含义 由多台主机构成,但对外表现为一个整体,只提供一个访问入口,相当于一台大型的计算机。 横向发展:放更多的服务器,有调度分配的问题。 垂直发展:升级单机的硬件设备,提高单个服务器自身功能。 …

如何保证消息不丢之MQ重试机制消息队列

1. 简介 死信队列,简称:DLX,Dead Letter Exchange(死信交换机),当消息成为Dead message后,可以被重新发送到另外一个交换机,这个交换机就是DLX 那么什么情况下会成为Dead message&a…

波卡 Alpha 计划启动,呼唤先锋创新者重新定义 Web3 开发

原文:https://polkadot.network/blog/the-polkadot-alpha-program-a-new-era-for-decentralized-building-collaboration/ 编译:OneBlock 区块链领域不断发展,随之而来的是发展和创新机会的增加。而最新里程碑是令人振奋的 Polkadot Alpha …

【刷题记录】详谈设计循环队列

下题目为个人的刷题记录,在本节博客中我将详细谈论设计循环队列的思路,并给出代码,有需要借鉴即可。 题目:LINK 循环队列是线性表吗?或者说循环队列是线性结构吗? 对于这个问题,我们来看一下线…

【Linux进阶之路】网络 —— “?“ (下)

文章目录 前言一、概念铺垫1.TCP2.全双工 二、网络版本计算器1. 原理简要2. 实现框架&&代码2.1 封装socket2.2 客户端与服务端2.3 封装与解包2.4 请求与响应2.5 对数据进行处理2.6 主程序逻辑 3.Json的简单使用 总结尾序 前言 在上文我们学习使用套接字的相关接口进行了…

Tomcat的安装

下载Tomcat(这里以Tomcat8.5为例) 直接进入官网进行下载,Tomcat官网 选择需要下载的版本,点击下载这里一定要注意:下载路径一定要记住,并且路径中尽量不要有中文!!!&…

怎么把视频变成gif动图?一招在线生成gif动画

MP4是一种常见的视频文件格式,它是一种数字多媒体容器格式,可以用于存储视频、音频和字幕等多种媒体数据。MP4格式通常用于在计算机、移动设备和互联网上播放和共享视频内容。要将MP4视频转换为GIF格式,您可以使用专门的视频转gif工具。这个工…

Python 对Excel工作表中的数据进行排序

在Excel中,排序是整理数据的一种重要方式,它可以让你更好地理解数据,并为进一步的分析和报告做好准备。本文将介绍如何使用第三方库Spire.XLS for Python通过Python来对Excel中的数据进行排序。包含以下三种排序方法示例: 按数值…

从0开始的 Vue 生活

Vue 一、配置环境1.1 安装node.js1.1.1 node.js 下载1.1.2 node.js 安装1.1.3 node.js 配置 1.2 安装VSCode1.2.1 VSCode 下载1.2.2 VSCode 安装1.2.3 VSCode 配置 二、创建Vue项目2.1 使用命令行创建Vue项目2.2 使用VSCode运行Vue项目2.3 尝试编写Vue项目2.3.1 准备工作2.3.2 …

线性代数笔记14--投影

1. 一维空间投影 p X A e B − p B − X A A ⊤ e 0 A ⊤ ( B − X A ) 0 X A ⊤ A A ⊤ B X A ⊤ B A ⊤ A p X A A A ⊤ B A ⊤ A pXA\\ eB-pB-XA\\ A^{\top}e0\\ A^{\top}(B-XA)0\\ XA^{\top}AA^{\top}B\\ X\frac{A^{\top}B}{A^{\top}A}\\ pXAA\frac{A^{\top}B}{A^…

Java开发与配置用到的各类中间件官网

开发配置时用到了一些官网地址,记录一下。 activemq 官网:ActiveMQ elk 官网:Elasticsearch 平台 — 大规模查找实时答案 | Elastic nginx 官网:nginx maven 官网:Maven – Welcome to Apache Maven nexus 官网&a…

Zoom软件怎么购买?zoom付费订阅教程

首先,让我们来了解一下Zoom的各个版本以及它们的价格。简单来说,Zoom分为免费版和收费版,收费版又包括专业版、商业版和企业版。 一、免费版 Zoom的免费版功能已经非常实用了,适合个人用户和小团队使用。免费版提供以下功能: 最多…

centos7 python3.12.1 报错 No module named _ssl

https://blog.csdn.net/Amio_/article/details/126716818 安装python cd /usr/local/src wget https://www.python.org/ftp/python/3.12.1/Python-3.12.1.tgz tar -zxvf Python-3.12.1.tgz cd Python-3.12.1/ ./configure -C --enable-shared --with-openssl/usr/local/opens…

小程序学习

一、第一天 1、小程序体验 2、注册账号 小程序 (qq.com) 3、开发工具下载 下载 / 稳定版更新日志 (qq.com) 4、目录结构 "navigationBarBackgroundColor": "#00b26a" 配置头部背景色 4、wxml模板介绍 5、wxss 6、js文件 7、宿主环境 1、通信主体 2…

spring boot 2.4.x 之前版本(对应spring-cloud-openfeign 3.0.0之前版本)feign请求异常逻辑

目录 feign SynchronousMethodHandler 第一部分 第二部分 第三部分 spring-cloud-openfeign LoadBalancerFeignClient ribbon AbstractLoadBalancerAwareClient 在之前写的文章配置基础上 https://blog.csdn.net/zlpzlpzyd/article/details/136060312 因为从 spring …