程序运行时,它的每部分内容都要先加载到内存中再被使用。
## **内存结构**
逻辑上内存大体被分为4段
1. 栈(stack)空间
特点:
* 栈空间小,CPU访问速度快。用于存放程序中临时创建的变量,存储占用空间长度不变且占用空间小的数据类型(integer,double,Boolean等)。
* 后进先出。适用push,pop进行操作。用于保存和恢复调用现场(上下文),可看作一个临时的数据寄存、交换的区域。
* 栈内存中的数据是可以直接存取的(CPU直接读写)?
2. 堆(heap)空间
大小不固定,可动态扩张或缩减。用于存放进程运行中被动态分配的内存段。用于存储数据长度可变或占用内存比较大的数据(字符串,数组,对象)。
3. 数据(data)段
用来存放可执行文件文件中已初始化的全局变量,就是存放程序静态分配的变量。
4. 代码(code)段
用于存放可执行文件的操作指令,是可执行程序在内存中的镜像(拷贝)。
代码段需要防止在运行时被非法修改(写操作),只允许读操作。一般存储程序中的函数。
- 软件工程
- 1. 基础
- 计算
- 网络
- 存储
- 2. 开发/运维
- 微服务
- 容器化(Docker)
- 容器网络
- 持续集成
- 持续发布
- 3. 架构
- 操作系统
- Linux服务器
- windows
- 内存
- 应用软件
- 前端
- 后端
- 数据库
- 协议
- 服务
- 分布式
- LNMP+Vue.js
- web网站架构技术
- 架构演化
- 架构分层
- Layer1. Frontend
- Layer2. Application
- Layer3. Service
- Layer4. Storage
- Layer5. Backend
- Layer6. Operation
- Layer7. Security
- Layer8. DataCenter
- 架构模式
- 架构要素
- 1. Performance
- 2. Availability
- 3. 可伸缩性
- 4. 可扩展性
- 5. 安全
- 6. 成本
- 4. 开发项目
- vue-php