看板 C_and_CPP 關於我們 聯絡資訊
※ 引述《WPC001 ()》之銘言: : 任何程式花最多時間的應該就是在迴圈內 : 而迴圈內很多時候是在處理向量運算 (如果是複雜的algorithm, C不見得會輸給fortran) : Fortran原生支援更高階的向量運算... : compiler在做最佳化時, 優化的程度會比較高... : 但對於一個好的程式設計師來說, 自己做loop unroll, 自己省掉一些無謂的運算 : 然後自己做prefetch (MMX/SSE), C/C++效能是不會比較差的... 這裡有個問題 寫complier的人 在寫C與fortran complier時,感覺該是差不多的(是C 不是C++) 至少到了中後段差不多吧QQ 後段的優化器,憑什麼對C就是比較差一些些呢 是因為C允許 for迴圈可以放複雜條建所以優化器難搞嗎? 如: for( i=0 ; i<81; printf("%d",i++) ) 個人不是資工本科出身,還請釋疑 :D -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 115.43.133.77
suhorng:說不定前段的差距夠大 ? 這些很難講吧~"~ 09/19 07:52
MOONRAKER:最好是差不多啦!雖然在gcc可能差不多(g77前身是f2c) 09/19 10:08
Ebergies:這個前面不是有討論, 語法本身的限制導致某些優化不能做 09/19 11:15
suhorng:我想還有一個說法是,C的編譯器是不被允許做某些優化的, 09/19 11:17
suhorng:因為這些優化或多或少都會變動一些程式執行的邏輯。 09/19 11:17
clanguage:C compiler的優化開一開會輸嗎??一般不是都沒開 09/19 11:20
MOONRAKER:這個說法是C還沒蓬勃發展的時候流行的。 09/19 13:39
shyann:可是我的經驗是C較快... 09/21 00:08
shyann:http://0rz.tw/Avprn <--這邊測試結果也是C較快 09/21 00:10
MOONRAKER:阿現在C已經蓬勃發展了,有這種結果是當然的。 09/21 10:05