【问题标题】:is there stack size in iphone?iphone中有堆栈大小吗?
【发布时间】:2010-05-27 05:31:59
【问题描述】:

每个 RAM 都必须有堆栈和堆(如 CS、ES、DS、SS 4 段)。但是在 iphone 中是否存在堆栈大小,只有堆可用?一些教程说当我们增加堆栈大小时,堆会减少,当我们增加堆大小时,堆栈会减少......是真的......?或固定堆栈大小或固定堆大小?请问有什么帮助吗?

【问题讨论】:

标签: iphone


【解决方案1】:

RAM 没有堆栈和堆(这些是程序使用结构,而不是物理内存的一部分),英特尔段寄存器也不适用于 ARM。

应用程序的线程,因为它是一个 C 应用程序,所以有一个堆栈。堆栈大小在设备上是有界的,在大多数情况下不能超过一定的大小(iPhone OS 上的主线程为 1MB),也不能缩小。

堆也是有限的。堆栈大小影响可用堆的唯一方法是创建线程,其中新堆栈将占用堆分配器可以使用的内存。在 iPhone OS 上,最小堆栈大小为 16KB。欲了解更多信息,请阅读threading documentation.

【讨论】:

  • 如果RAM没有栈和堆,那它在哪里?段寄存器会根据处理器而不是4(ss,cs,es,ds)来改变吗?
  • 堆栈在 RAM 中。堆栈不是 RAM 的属性 - 它是一个逻辑结构。 iPhone 有一个 ARM 处理器,它与 Intel 架构机器无关,因此甚至没有段寄存器。
猜你喜欢
  • 2015-09-04
  • 1970-01-01
  • 2023-04-10
  • 1970-01-01
  • 1970-01-01
  • 2012-06-26
  • 1970-01-01
  • 2011-04-14
  • 2010-11-24
相关资源
最近更新 更多