×
Namespaces

Variants
Actions
Revision as of 02:59, 8 May 2013 by hamishwillee (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

S60第三版中最小缺省堆栈大小

From Nokia Developer Wiki
Jump to: navigation, search
Article Metadata

兼容于
平台:
Symbian

文章
huwell 在 28 Jun 2007 创建
最后由 hamishwillee 在 08 May 2013 编辑
  • 设备, 软件 版本: S60 3rd Edition


  • 说明:

在S60第三版中缺省的堆栈大小只有8KB,这对大多数复杂程序来说是不够的


  • 详细描述:

在symbian OS v9中缺省的堆栈大小从20kb缩减到8kb,以优化内存的消耗。这主要是因为平台安全性导致了在系统中同时运行的进程增多。


实际上,8kb的堆栈大小对任何一个稍大的S60程序来说都是不够的。如果在当前设备上缺省的堆栈能运行你的程序,那因为堆栈的溢出(平台库的消耗而引发堆栈的增长),它也很容易引发崩溃。在S60第三版SDK中建议所有程序都增长到20KB堆栈,这需要为此重新编译。


  • 解决方案:

我们可以通过在.mmp工程定义文件中使用epocstacksize命令行来修改缺省的8KB大小。 epocstacksize stacksize堆栈的大小,可以通过十六进制或十进制来指定。但这对winscw/wins平台是无效的。


列如下面这行将堆栈大小增加到20KB

epocstacksize 0x5000

同样,我们也可以在产生新线程时定义该线程的堆栈大小。

This page was last modified on 8 May 2013, at 02:59.
91 page views in the last 30 days.
×