gpt4 book ai didi

c - 在 c 代码中显示溢出的工具

转载 作者:太空狗 更新时间:2023-10-29 15:04:59 26 4
gpt4 key购买 nike

是否有工具可以解决我的 C 代码溢出问题?

我的意思是查看哪些代码块可能使寄存器移动到内存。

编辑:什么是溢出:

在编译代码的过程中,有时您必须进行寄存器分配。编译器会做一个干扰图(“变量”是节点,如果它们同时存在则它们是连接的)。从这一点开始,有一个线性过程可以对图形进行着色:为每个变量分配一个不会干扰其他变量的寄存器...如果您没有足够的寄存器来为图形着色,则算法将失败并且变量(寄存器)将被溢出(移动到内存)。

从软件工程的角度来看,这意味着您应该始终将变量的生命周期降至最低,以便将发生溢出的可能性降至最低。

当你想要优化代码时,你应该寻找那些类型的东西,因为溢出会给读/写内存提供额外的时间。我一直在寻找一种工具或编译器标志,它们可以告诉我溢出的位置,以便我进行优化。

最佳答案

我知道没有这样的工具。

由于有关溢出的决定因编译器和编译器版本而异,甚至因给定编译器的给定版本内的设置而异,因此任何此类工具都必须与编译器紧密耦合,并且可能只支持一个编译器。

另一方面,您始终可以自己查看生成的程序集,看看给定的变量是否溢出。

关于c - 在 c 代码中显示溢出的工具,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4355072/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com