gpt4 book ai didi

c - C代码优化

转载 作者:行者123 更新时间:2023-12-03 17:04:36 25 4
gpt4 key购买 nike

我正在尝试优化一些C代码,这是我第一次。
第一步,我转储了我的可执行文件以查看汇编代码。
例如此功能:

void init_twiddle(int N)
{
int i=0;
for(i=0; i<ELEMENTS_HALF; i++)
{
twiddle_table[i].re = (float) cos((float)i * 2.0 * PI / (float)N);
twiddle_table[i].im = (float) - sin((float)i * 2.0 * PI / (float)N);
}
}


如果我这样做,不会更好:

    void init_twiddle(int N)
{
int i=0;
float puls = 2.0 * PI / (float)N;
for(i=0; i<ELEMENTS_HALF; i++)
{
twiddle_table[i].re = (float) cos((float)i * puls);
twiddle_table[i].im = (float) - sin((float)i * puls);
}


为了避免多次重复进行div和div操作?
}

最佳答案

不幸的是,您的第一步已经是错误的。

不要盲目地遍历代码来优化任意循环,这可能会(或者更可能)不会影响性能(也许是因为该代码很少被调用,因此它实际上并没有使用任何运行时)。

优化方法:您需要首先找出我的程序在哪里花费的时间?使用时序测量来缩小程序大部分时间的使用位置(您可以使用我们的计时器或性能分析应用程序使用本地记录)。没有至少一些数字,即使您的代码看起来还有更快的潜力,您甚至都看不到编译器在什么地方已经为您提供帮助,甚至已经使所有可能性最大化(现代编译器确实非常擅长于此) )。

仅当您知道应用程序中的热点时,才应开始优化这些热点。

关于c - C代码优化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38107710/

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