首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >小存储器设备中的存储器分配

小存储器设备中的存储器分配
EN

Stack Overflow用户
提问于 2008-12-12 15:56:52
回答 5查看 599关注 0票数 2

一些系统,例如Symbian,坚持人们在分配时使用堆而不是堆栈

大对象(例如路径名,可能超过512个字节)。这有什么特别的原因吗?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2008-12-12 18:10:29

大多数嵌入式设备没有提供内存管理单元,因此操作系统无法自动增加堆栈空间,这对程序员来说是透明的。即使假设有一个可增长的堆栈,你也必须自己管理它,这并不比堆分配好多少,也违背了最初使用堆栈的目的。

票数 1
EN

Stack Overflow用户

发布于 2008-12-12 16:28:21

通常,嵌入式设备上的堆栈被固定为非常小,即8K是Symbian上的默认堆栈大小。

如果你考虑文件名的最大长度是256字节,但是unicode的长度是256字节的两倍,那么对于1个文件名,已经是512字节(整个堆栈的1/16)了。因此,您可以想象,如果您不小心,将堆栈用完是相当容易的。

票数 3
EN

Stack Overflow用户

发布于 2009-02-11 08:12:49

大多数Symbian设备都带有MMU,但是直到最近,它还不支持寻呼。这意味着为每个正在运行的进程提交物理RAM。Symbian上的每个线程(通常)都有一个固定的8KB堆栈。如果每个线程都有一个堆栈,那么将堆栈的大小从8KB增加到32KB会对设备的内存需求产生很大的影响。

堆是全局的。如果需要的话,增加它的大小所产生的影响要小得多。因此,在Symbian上,堆栈只用于小数据项-从堆中分配较大的数据项。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/363162

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档