看板 C_and_CPP 關於我們 聯絡資訊
網路上看了一些增加程式效率的小技巧,很多有看沒有懂,知其然不知其所以然。 1. 有關function參數的順序,越常用的參數要放在越左邊 為什麼呢?和push到stack中的順序有關嗎?自己實驗了一下,速度上好像沒甚麼差別.. 2. 在struct中的變數,把size大的變數放在前面 為什麼呢?可以減少記憶體的使用嗎? 3. 把function要用到的變數從參數帶入,而不是讀取global的變數 為什麼呢?自己實驗了一下,速度好像不會因此增快... 希望大家指點一下,謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 111.251.139.108
tropical72:我想看原網址,但我認為那文章所述大多compiler都會做. 07/05 23:29
akasan:1.某些架構下前幾個參數是由 register 傳遞 07/05 23:33
akasan:3.幫助 compiler 作 alias analysis, 有機率減少記憶體存取 07/05 23:34
akasan:2. 不知道XD , 不過要 reorder arg 或 struct 的順序 07/05 23:35
akasan:compiler 需要有足夠的資訊才有辦法做, 例如要分析出所有 07/05 23:35
akasan:呼叫該函數的地方或所有使用該 struct 的地方 07/05 23:36
akasan:理論上把 compiler 最佳化開起來它會自己處理 07/05 23:36
akasan:不過實務上總是沒那麼美好就是了XD 07/05 23:38