> WPC.bbs@bbs.nhctc.edu.tw (找一個理由...) wrote:
> 這大概是P4討厭rol / ror / imul等指令... 先天不良的行為所致
> (但是我能避開的就已經避開了, 整個碼也是依照P4/Xeon optimal manual來寫)
> CPU越來越複雜,就自然越來越難最佳化, 此時高階語言的優勢就會跑出來
> P4一直都讓我感到很頭痛... :(
> (不過有些時候P4的效能還是會比較好, 例如我寫RSA的部份,
> 會運用到大量的add 此時P4的性能就比P3好很多...)
想跟現在進步到快不行的編譯器之「最佳化器」比「最佳化」!
那是愈來愈難囉!
人類會用一堆速度加快的新指令, 它也會用; 人類不時的想替換
mul, div 這種指令, 它也會替換. 人類會看 P4/Xeon optimal
manual 中的步數, 它也這種步數.
跟現在的軟體, 較量「最佳化」的那種感覺, 真的很像在跟電腦
下西洋棋一樣. 它可考慮的步數, 通常都可以比人類棋手要多上
許多.
那天, 有人又想到的那些新的最佳化理論、招數; 那些編譯器的
廠商, 就會想辦法給它加進去.
執行效率最好的碼, 肯定不是那種讓人類 "最易讀" 的那種程式
碼! 現在的最佳化器, 真的可以佳化出那種樣子的碼. 反組譯出
來, 很難分析. 儘管在原始檔上, 結構分明, 易讀性一級棒.
若說人類手工佳化, 有如用人手把衣服扭乾; 用軟體佳化, 愈來
愈可以把它比喻成, 用脫水機把衣服甩乾, 想從中再扭出一滴水
來, 相當困難...
--
Free Tech (Win32Asm, Electronics..)
http://freetech.cjb.net/
Updated: April-15, 2004 / 14:35