c c++ java堆栈空间内存

1.C中栈空间是十分有限的。

测试环境
VS2015
Window10
函数的递归调用要依赖栈空间,这也导致递归调用次数是有限次的。
在我的测试中,回调了4789次就栈溢出了。



2.当申请了栈的空间,回调2891次就栈溢出了。

栈的空间是被共用的。


JAVA回调次数依赖JVM分配的栈大小,JVM默认分配1M

java.lang.StackOverflowError

java.lang.StackOverflowError

Android栈大小

Dalvik 具有单独的原生代码堆栈和 Java 代码堆栈,并且默认的 Java 堆栈大小为 32KB,默认的原生堆栈大小为 1MB。ART 具有统一的堆栈以改善局部性。 通常情况下,ART Thread堆栈大小应该与 Dalvik 堆栈大小近乎相同。 但如果您显式设置了堆栈大小,则可能需要针对 ART 中运行的应用重新访问这些值。

参考资料:

在 Android Runtime (ART) 上验证应用行为

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容