memory - 为什么编译后会分配两块内存区域,是不是很浪费内存?
问题描述
运行一个程序的步骤是:编译->加载到内存->运行。
为什么程序编译后内存分配两个区域:Text Segment
和Global area
?如果程序编译后没有加载运行,这两个地方不是很浪费内存吗?
为什么不将十六进制代码加载到内存中时分配这两个区域?
顺便说一句,我还有一个问题:
如果有 10 个程序正在运行,是否会占用 10 个内存块,每个程序都有四个区域(Text Segment
、Constant
、Stack
、Heap
)?还是全部使用一个有四个区域的街区?
解决方案
推荐阅读
- python - web2py - 选择数据库
- algorithm - 将数组拆分为 2 的时间复杂度是多少
- vue.js - 如何使用 moment.js 通过 vue.js 格式化日期?
- xamarin - CollectionView 项目添加中的视频播放器会导致视频帧随机播放 Xamarin Forms
- c++ - 为什么 rapidjson 无法获得这个整数值
- algorithm - Master theorem - 最好的情况大哦?
- javascript - 在 JS 中,如何通过解构另一个函数来重新声明函数参数变量?
- ruby-on-rails - “捆绑安装失败”在灌输 nokogiri (1.10.9) 时发生错误,并且 Bundler 无法在 Cloud9 Ubuntu OS 上运行的 CS50 IDE 上继续
- docker - 自动删除危险图像并同时支持多阶段构建的缓存
- jquery - 用于使用 JQuery 将数据插入 tr td 的 JSON 循环数组