zoukankan      html  css  js  c++  java
  • 内存的堆栈分析

    一般说到内存指的是计算机的随机存储器(RAM),程序都是在这里面运行。
    计算机内存的大致划分如下:
    1:内存地址由上倒下依次增加

    2:内存由上倒下依次分为以下几块:

    内核虚拟内存:用户代码不可见的内存,地址空间顶部的区域,是为内核保留的。

    : 维护虚拟地址的空间顶部是用户栈,编译器用它来实现函数调用。
      每次调用一个函数时栈会增长(方法中涉及大量的几部变量),
      从函数返回时栈会收缩。
      存储运行时的局部变量及const局部变量
      栈是连续的lifo(后进先出)的存取方式,地址从上到下逐渐增加。

    共享库:大约在地址空间的中间部分,是一块用来存放标准库和数学库这样的共享库代码和数据的区域。
        如:printf函数等...

    :运行时有malloc创建的运行时的堆。
      存放程序员申请的内存空间,如 new Array()
      堆是树状结构的无序的存储数据的方式。

    程序代码和数据区:包括读/写数据和只读的代码和数据,对所有的进程来说,代码是从同一固定地址开始,
              紧接着的是和C全局变量相对应的数据位置。代码和数据区是直接按照可执行目标文件的
              内容初始化的。
            可读写区用于存储全局变量和静态变量 的数据
            只读区 存储代码
            可读写区用于存储用户的数据:地址连续存储

  • 相关阅读:
    区块链技术基础
    理解数字货币
    MySQL-插入更新 ON DUPLICATE KEY UPDATE
    Flume-Failover Sink Processor 故障转移与 Load balancing Sink 负载均衡
    Flume-Replicating Channel Selector 单数据源多出口
    Flume-几种拓扑结构
    Flume-事务与传输流程
    Java-JPDA 概述
    Navicat Premium
    Flume-Taildir Source 监控目录下多个文件的追加
  • 原文地址:https://www.cnblogs.com/show58/p/12396217.html
Copyright © 2011-2022 走看看