我想優化一些C代碼,這是我第一次。 作爲第一步我傾銷我的可執行文件,以便看到彙編代碼。 例如,對於這樣的功能: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);
}
,以避免重複被數千次MULT和DIV操作? }
機會是,它會。你不會指望編譯器自己弄清楚,是嗎? – dasblinkenlight
這是一個簡單的基準應用程序標記。我最初的想法是,除非N很大,否則它可以忽略不計。或者正如Amin Negm-Awad在答案中指出的那樣,只要您啓用了優化標誌,編譯器可能已經爲您完成了這一切,這是無關緊要的。 – CHess
彙編代碼與此有什麼關係? –