Re: [問題] 網路上亂看一些增加效率的小撇步
看板C_and_CPP作者softwind (software everywhere)時間14年前 (2011/07/06 02:20)推噓0(0推 0噓 4→)留言4則, 1人參與討論串2/2 (看更多)
※ 引述《pracinverse (改)》之銘言:
: 網路上看了一些增加程式效率的小技巧,很多有看沒有懂,知其然不知其所以然。
: 1. 有關function參數的順序,越常用的參數要放在越左邊
: 為什麼呢?和push到stack中的順序有關嗎?自己實驗了一下,速度上好像沒甚麼差別..
用keyword "register" 建議compiler 可能比較有用...
push parameters 不一定 由左至右, 也有可能由右往左推進stack 不一定相同
在 ARM compiler上 我看過一段說明是 如果pass parameter小於等於 4個, 他會全部使用
register來pass, 不會動到 mem push/pop.
這樣 似乎 有快一點
: 2. 在struct中的變數,把size大的變數放在前面
: 為什麼呢?可以減少記憶體的使用嗎?
alignment... 由大到小 依據 "sizeof(X)" 的大小排
structure alignment問題 wiki就有
: 3. 把function要用到的變數從參數帶入,而不是讀取global的變數
: 為什麼呢?自己實驗了一下,速度好像不會因此增快...
: 希望大家指點一下,謝謝
一般不是 直接access global var比較快嗎? 還少一次 push parameter
可能的情況是 global var 被其他task lock住
so 要等release lock 才能 access
--
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.166.120.177
→
07/06 08:24, , 1F
07/06 08:24, 1F
→
07/06 08:25, , 2F
07/06 08:25, 2F
→
07/06 08:26, , 3F
07/06 08:26, 3F
→
07/06 08:27, , 4F
07/06 08:27, 4F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):