C++内存分区

2021-03-29 06:25

阅读:504

标签:比特   常量   数据   感受   信息   error   产生   需要   读写   

一、内存分几个区原因

系统运行时不能所有数据都读取到CPU寄存器,所以需要有缓存,缓存不够用了所以有多级缓存。缓存的存储器毕竟还是相对昂贵的,所以还有内存(也叫外存)。但是数据在内存中的是怎样存放,这又是一个问题。

  1. 首先从字节层面看:信息在计算机肯定是0/1的bit比特位形式存储,习惯是8bit作为一个字节作为一个有意义的存储单位,但是有些数据的最小存储单位是多个字节,例如:int类型。多字节的数据在内存或者寄存器存储方式可以分为:大端、小端。
  2. 整体内存层面看:内存中有执行的二进制代码程序、有代码运行时需要不断改变的变量、有代码运行调用但是不需要改变的常量、还有需要的数据等等。内存中的数据可以看做多小电容,不停读写修改会让这些电容充放电,充放电频繁会产生磁场对附近的其他数据影响。为了抵消这些影响,系统把内存分为多个区,这样可以有效提升数据的安全性。企业级服务器使用的一般都是带ECC(Error Correcting Code)错误检查纠正技术的内存


二、主流说法



三、个人感受

对内存分区有一些了解,知道为什么内存中数据要分开存,然后了解大概可以分几个区即可。具体分几个,new的对象存储在哪里,malloc申请的内存在哪里这些细节需要看具体的编译器和操作系统。如果不是做编译器的,可以对这些有了解即可。


四、相关参考

C++内存分区

标签:比特   常量   数据   感受   信息   error   产生   需要   读写   

原文地址:https://www.cnblogs.com/mehome/p/13616182.html


评论


亲,登录后才可以留言!