在刚开始从事性能分析时,分析员通常会忽略环境栈所需要的空间,因为他们不理解函数
是如何被调用的以及在函数调用结束时会发生什么。每当一个函数被调用时,下面的数据将被
保存在环境栈中:
• 返回地址。
• 函数被调用时所有局部变量的值以及传值形式参数的值(仅对于递归函数而言)。
• 所有引用参数及常量引用参数的定义。
值得注意的是,有些编译器在保留局部变量的值、传值形式参数的值以及引用参数和常量
引用参数的定义时,对于递归函数和非递归函数一视同仁,而有些编译器则仅为递归函数保存
上述内容。所以实际使用的编译器将影响环境栈所需要的空间。
性能分析员起初常忽略环境栈空间,因不了解函数调用及结束时情况。函数调用时,返回地址、局部变量值等会存于环境栈。不同编译器处理递归和非递归函数保存内容有差异,实际使用的编译器会影响环境栈所需空间。
192

被折叠的 条评论
为什么被折叠?



