Python
物理地址 标签描述

物理地址 堆的物理地址分配对对象是不连续的。因此性能慢些。在GC的时候也要考虑到不连续的分配,所以有各种算法。比如,标记-消除,复制,标记-压缩,分代(即新生代使用复制算法,老年代使用标记——压缩) 栈使用的是数据结构中的栈,先进后出的原则,物理地址分配是连续的。所以性能快。 内存分别 堆因为是不连续的,所以分配的内存是在运行期确认的,因此大小不固定。一般堆大小远远大于栈。 栈是连续的,所以分配的内存大小要在编译期就确认,大小是固定的。 存放的内容 堆存放的是对象的实例和数组。因此该区更关注的是数据的存储 栈存放:局部变量,操作数栈,返回结果。该区更关注的是程序方法的执行。 PS: 静态变...

1、逻辑地址,线性地址,虚拟地址,物理地址傻傻分不清? (1)逻辑地址 在IA-32架构下,分段是必须的,而分页并不是必须的。不论分页与否,访问内存都必须采用“段基址:段内偏移地址”的策略。因此访问内存需要16&32共48位的地址信息,这便是逻辑地址,高12位为段选择子,后面32位为段内偏移地址。 (2)线性地址 使用选择子索引到段描述符取得32位的段基址后与逻辑地址内的32位段内偏移地址相加后得到一个32位的地址信息,这便是线性地址。 (3)虚拟地址 如果不启用分页机制,线性地址就是物理地址,而如果启用分页机制的话,线性地址又叫做虚拟地址。 (4)物理地址 物理地址,不用多说,内...