Re: [問題] 為何公認fortran速度略快於C ?

看板C_and_CPP (C/C++)作者時間16年前 (2009/05/01 10:26), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串3/4 (看更多)
※ 引述《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
文章代碼(AID): #19-btM8U (C_and_CPP)
文章代碼(AID): #19-btM8U (C_and_CPP)