我的c代码中有溢出的工具吗?
我的意思是看看哪些代码块可能会使寄存器移动到内存中.
编辑:什么是泄漏:
在某些时候编译代码的过程中,您必须进行寄存器分配.编译器将执行干扰图("变量"是节点,如果它们同时存在则它们是连接的).从这一点开始,有一个线性过程将进行图形着色:为每个变量分配一个不会干扰其他变量的寄存器......如果没有足够的寄存器来为图形着色,算法将失败并且变量(寄存器) )将被溢出(移动到记忆中).
从软件工程的角度来看,这意味着您应该始终最小化变量,以便最大限度地减少泄漏的可能性.
当您想要优化代码时,您应该寻找那些类型的东西,因为溢出会给予额外的时间来读/写内存.我正在寻找一个工具或编译器标志,可以告诉我哪里溢出,所以我可以优化.
据我所知没有这样的工具。
由于有关溢出的决策因编译器、编译器版本甚至给定编译器的给定版本内的设置而异,因此任何此类工具都必须与编译器紧密耦合,并且可能只支持一个编译器。
另一方面,您始终可以自己查看生成的程序集,看看给定的变量是否溢出。
| 归档时间: |
|
| 查看次数: |
410 次 |
| 最近记录: |