如何计算/近似递归功能的堆栈框架使用的内存



我希望能够根据递归的参数来计算或至少近似于在字节或任何其他内存中的内存,在字节或其他任何内容中,将使用递归功能的特定堆栈框架。功能。

例如,递归函数的堆叠框架可以像sample_recursive_function(int [] array,int n)取?

您可以使用参数的大小以及恒定的返回地址大小近似。就您的示例而言,它很小:int []是指针类型(对于Java,C 或C#),并使用4或8个字节(取决于代码是否在32还是64位运行),INT为4个字节,返回地址也是4或8个字节。因此,该功能的优化堆栈帧将在32位上为12个字节,在64位上为32个字节(由于填充)。在调试模式下运行时,可以使用一些额外的字节。同样,该功能中的任何本地变量也将添加到堆栈框架的大小中。细节可能更复杂。

最新更新