首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何计算/近似递归函数堆栈帧使用的内存?

如何计算/近似递归函数堆栈帧使用的内存?
EN

Stack Overflow用户
提问于 2017-12-02 18:35:57
回答 1查看 591关注 0票数 2

我希望能够根据递归函数的参数,计算或至少近似计算递归函数的特定堆栈帧将使用多少内存(以字节或其他形式表示)。

例如,像sample_recursive_function(int [] array,int n)这样的递归函数的栈帧可能占用多少内存?

EN

回答 1

Stack Overflow用户

发布于 2017-12-02 18:42:12

你可以用参数的大小加上一个常量的返回地址大小来近似它。对于您的示例,它很小: int[]是一种指针类型(对于java、C++或C#),使用4或8字节(取决于代码是在32位还是64位上运行),int是4字节,返回地址也是4或8字节。因此,此函数的优化堆栈帧将在32位上为12字节,在64位上为32字节(由于填充)。在调试模式下运行时,可能会使用一些额外的字节。此外,函数中的任何局部变量也会增加堆栈帧的大小。细节可能会更复杂一些。

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

https://stackoverflow.com/questions/47606967

复制
相关文章

相似问题

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