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

看板C_and_CPP (C/C++)作者 (hallowed be my name)時間16年前 (2009/09/19 02:41), 編輯推噓4(406)
留言10則, 5人參與, 最新討論串4/4 (看更多)
※ 引述《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

09/19 07:52, , 1F
說不定前段的差距夠大 ? 這些很難講吧~"~
09/19 07:52, 1F

09/19 10:08, , 2F
最好是差不多啦!雖然在gcc可能差不多(g77前身是f2c)
09/19 10:08, 2F

09/19 11:15, , 3F
這個前面不是有討論, 語法本身的限制導致某些優化不能做
09/19 11:15, 3F

09/19 11:17, , 4F
我想還有一個說法是,C的編譯器是不被允許做某些優化的,
09/19 11:17, 4F

09/19 11:17, , 5F
因為這些優化或多或少都會變動一些程式執行的邏輯。
09/19 11:17, 5F

09/19 11:20, , 6F
C compiler的優化開一開會輸嗎??一般不是都沒開
09/19 11:20, 6F

09/19 13:39, , 7F
這個說法是C還沒蓬勃發展的時候流行的。
09/19 13:39, 7F

09/21 00:08, , 8F
可是我的經驗是C較快...
09/21 00:08, 8F

09/21 00:10, , 9F
http://0rz.tw/Avprn <--這邊測試結果也是C較快
09/21 00:10, 9F

09/21 10:05, , 10F
阿現在C已經蓬勃發展了,有這種結果是當然的。
09/21 10:05, 10F
文章代碼(AID): #1AizH2Vs (C_and_CPP)
文章代碼(AID): #1AizH2Vs (C_and_CPP)