Re: [問題] 程式最佳化
※ 引述《Killercat (殺人貓™)》之銘言:
: ※ 引述《dcgkii ()》之銘言:
: : 有沒有書籍或網站是專門在講
: : 程式的最佳化啊?
: : 就是可以使編譯後的組語更快?
: 最佳化來講 "我們能做的"大概就是只有thread opt跟openMP而以了
: 剩下的不是要_asm就是要交給編譯器來做
: 有幾個最佳化的點我可以聊一下
: 1. 良好的寫作習慣
: 能++n就不要n++ 能+=就不要+
: 能一次迴圈內做完的就不要分兩個迴圈(不過這個在最佳化有不少例外)
: 2. 利用一些third party library
: 比方說Intel出的IPP/MKL(恩 效能要用錢來換)
: 3. 買很棒的IDE並且遵照他的作法
: 又是Intel, IC(Intel Compiler)
: 4. OpenMP
: 這個是你可以google的東西,在很多IDE上都有支援
: 效能增加非常可觀
: 5. Thread opt
: 這是一個很複雜的議題,thread本身是有最佳化解法的
: 市面上也有些現成的(恩 也有要錢的)library
: 比方說TBB(有免費版本的OpenTBB, http://www.threadingbuildingblocks.org/ )
: Boost本身也有thread pool manager,openMP3.0的task manager
: 原理的話就自己google了,其實除了1以外
: 大多數都是把很多個相同的算式合在一次運算裡面做掉以避免浪費
6. 盡量用三元運算式 e1?e2:e3 代替 if else
7. 盡量不要用動態記憶體配置寫法 malloc()
8. 盡量用 Bitwise Logical Operator (>>,<<,^,|,&,~)
ps: 乘法可用<< , 除法可用 >>
9. 盡量不要用 / 或 % 運算
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 123.110.129.63
※ 編輯: uefang 來自: 123.110.129.63 (03/27 21:07)
※ 編輯: uefang 來自: 123.110.129.63 (03/27 21:08)
→
03/27 22:06, , 1F
03/27 22:06, 1F
→
03/27 22:10, , 2F
03/27 22:10, 2F
推
03/27 23:29, , 3F
03/27 23:29, 3F
推
03/27 23:45, , 4F
03/27 23:45, 4F
推
03/28 02:20, , 5F
03/28 02:20, 5F
→
03/28 02:21, , 6F
03/28 02:21, 6F
→
03/31 01:13, , 7F
03/31 01:13, 7F
討論串 (同標題文章)
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章