Re: [問題] 為何公認fortran速度略快於C ?
※ 引述《Carbontube (碳管)》之銘言:
: 大體上,就多數人認知,C與Fortran速度是有差的
: 差個 10趴到30趴之間。
: 小弟實在想不透這點,為何fortran可以比較快。
: 就complex而言,是沒錯,C本身沒有這型別,要自己去宣告個
: structure或class實做,造成實部與虛部的位置不連續,以致
: 速度較慢。
: 其他原因就不了解為何C較慢了,是因為C的 array都是用指標方式實現
: 而fortran一開始就把array這型態寫死嗎?
: 對complier運作的原理完全一無所知,真不知道fortran complier
: 到底動了什麼手腳。
: 還請大牛釋疑,謝謝。
任何程式花最多時間的應該就是在迴圈內
而迴圈內很多時候是在處理向量運算 (如果是複雜的algorithm, C不見得會輸給fortran)
Fortran原生支援更高階的向量運算...
compiler在做最佳化時, 優化的程度會比較高...
但對於一個好的程式設計師來說, 自己做loop unroll, 自己省掉一些無謂的運算
然後自己做prefetch (MMX/SSE), C/C++效能是不會比較差的...
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.45.99.116
討論串 (同標題文章)
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章