每个RAM必须有堆栈和堆(如CS,ES,DS,SS 4段)。但是iphone中的堆栈大小是否只有堆可用?有些教程说当我们增加堆栈大小时,堆会减少当我们增加堆大小时,堆栈会减少......是真的吗?或固定堆栈大小或固定堆大小?有什么帮助吗?
答案 0 :(得分:11)
RAM没有堆栈和堆(这些是程序使用结构,而不是物理内存的一部分),英特尔段寄存器也不适用于ARM。
应用程序的线程,因为它是一个C应用程序,有一个堆栈。堆栈大小在设备上有限,并且在大多数情况下不能超过一定的大小(iPhone OS上的主线程为1MB),也不能缩小。
堆也有限。堆栈大小影响可用堆的唯一方法是创建线程,新堆栈将占用堆分配器可以使用的内存。在iPhone OS上,最小堆栈大小为16KB。有关更多信息,请阅读threading documentation.