最佳答案
我请求 Google 给我 gcc
选项 -fomit-frame-pointer
的含义,它将我重定向到下面的声明。
- 墨迹-框架-指针
不要将框架指针保存在寄存器中,因为函数不需要这样的寄存器。这样可以避免保存、设置和恢复帧指针的指令,还可以在许多函数中使用额外的寄存器。它还使得在一些机器上无法进行调试。
根据我对每个函数的了解,将在进程内存堆栈中创建一个激活记录,以保存所有局部变量和更多信息。我希望这个帧指针指的是函数的激活记录的地址。
在这种情况下,什么类型的函数不需要将帧指针保存在寄存器中?如果我得到了这些信息,我将尝试基于这些信息设计新的函数(如果可能的话) ,因为如果帧指针没有保存在寄存器中,一些指令将被省略在二进制文件中。在一个有很多功能的应用程序中,这将真正显著地提高性能。