作者WPC001 ()
看板C_and_CPP
标题Re: [问题] 为何公认fortran速度略快於C ?
时间Fri May 1 10:26:29 2009
※ 引述《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