首页 > 解决方案 > 为什么编译后会分配两块内存区域,是不是很浪费内存?

问题描述

运行一个程序的步骤是:编译->加载到内存->运行。

为什么程序编译后内存分配两个区域:Text SegmentGlobal area?如果程序编译后没有加载运行,这两个地方不是很浪费内存吗?

为什么不将十六进制代码加载到内存中时分配这两个区域?


顺便说一句,我还有一个问题:

如果有 10 个程序正在运行,是否会占用 10 个内存块,每个程序都有四个区域(Text SegmentConstantStackHeap)?还是全部使用一个有四个区域的街区?

标签: memorystackheap-memory

解决方案


推荐阅读