作者OASYS (打倒万恶ETS)
看板Programming
标题[问题] 追求效能下,在Do Loop下用IF叙述?
时间Tue Mar 11 11:31:20 2008
问一个小弟想很久的问题,因为在杂志上面看到CPU的运作原理,小弟写科学计算的程式
一跑通常要近月,也因此要常常斤斤计较程式的效能,哪怕能快个一个小时也好,如
在一个大量回圈(1~1E8)里要重复Call一个副程式,这个副程式里面又有一些IF的叙述
是用来区别参数的使用情况,如IF I0<A就用F_A参数,IF I0>A就用F_B参数
,现在小弟的想法是,这些IF的叙述会不会对CPU的分歧预测造成影响呢?
如果我把这个叙述改写成阵列如F(I0).只要前面A个参数都是F_A,其余则是F_B
,直接把这个阵列带入计算里,省去所有的IF叙述,这样会不会比较快呢?...
感谢解答!!
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.115.31.143
1F:推 brighton16:table-driven design有效,越复杂的情 122.122.88.235 03/11 11:44
2F:→ brighton16:况改善越明显 122.122.88.235 03/11 11:45
3F:→ OASYS:所以IF叙述越少对程式的效能越有帮助罗?? 124.218.86.239 03/11 22:30
4F:→ OASYS:感谢解答!! 124.218.86.239 03/11 22:34