作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我一直在思考这个问题,但还没有找到任何解释。
哪个模块决定应该分配多少内存给 C++ 程序?是操作系统决定编译器的推荐吗? ..链接器?
分配的内存中栈和堆的比例是多少?
最佳答案
对于不同的操作系统,答案是不同的。通常,可执行文件包含主线程所需的堆栈大小,由链接器放置在那里,这可能会被操作系统设置覆盖。操作系统设置可以通过一种或多种方式配置,可能是针对每个用户。一些操作系统不需要预先指定堆栈大小,它们可以在使用时添加堆栈,或多或少无限期地添加(直到达到硬限制或系统用完可用内存)。那些确实需要预先确定大小的那些可能最初只分配地址空间而不是内存,并且当堆栈到达那么远时将地址映射到内存。
堆通常不会预先分配,因此没有“堆栈和堆的比率”。分配给一个进程的总内存可能会或可能不会受到限制——如果没有,那么它可以达到系统资源允许的最大内存,或者在 32 位系统上可能会受到可用地址空间的限制。
关于c++ - 内存分配责任,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10298519/
理想情况下,Spring MVC 应用程序中的 Controller 必须接收请求、将请求发送到 API、将(调用的)结果加载到模型(以便 View 随后呈现它)并转发到 View 。他们不应该再做了
我是一名优秀的程序员,十分优秀!