PTT
Submit
Submit
選擇語言
正體中文
简体中文
PTT
C_and_CPP
[討論] 如果把省去所有函數呼叫的開銷會快多少?
作者:
Hazukashiine
(私は幸せです)
2016-09-29 17:05:02
以 (SGI) C++ STL std::list 的例子來說:
因為涉及很多對資料結構低階的操作,所以實作上勢必有很多內部函數的呼叫,
像是 protected: void transfer(...); 就是一個明顯的例子,被反覆呼叫很多次。
假使不在乎編譯出來的執行檔膨脹的問題的話,把執行的速度作為最高的原則,
那大家覺得如果把所有函式 inline ,能快上多少?快很多?還是一點點而已?
畢竟很多時候效能的瓶頸就卡在那個最底層的東西上面。
作者:
Caesar08
(Caesar)
2016-09-29 17:17:00
來看Standard C++怎麼說
https://goo.gl/5QiT8y
作者:
Hazukashiine
(私は幸せです)
2016-09-29 17:19:00
哈哈哈哈哈哈 我昨天就在看這個耶 !!!只是有點好奇 大家會怎麼覺得 OwO
作者:
Caesar08
(Caesar)
2016-09-29 17:20:00
那你就知道 你問的問題很難有正確答案了
作者:
Hazukashiine
(私は幸せです)
2016-09-29 17:22:00
但是我已經快要有答案啦哈哈哈 因為我正實作一個完全沒有函數呼叫開銷的 linked list container正因為他們說不一定 所以才更想知道 如果做出來了到底是變快還是變慢 還是根本沒影響
作者:
Caesar08
(Caesar)
2016-09-29 17:28:00
gcc有__attribute__((always_inline))VC++有__forceinline。把這個加在他們實作的std::list就好了吧?
作者:
Hazukashiine
(私は幸せです)
2016-09-29 17:37:00
那個還沒試過 但是我想要用 C 語言去實作這樣的東西
作者:
pili100
(zelda)
2016-09-29 17:59:00
有實驗精神
作者:
uranusjr
(â†é€™äººæ˜¯è¶…級笨蛋)
2016-09-29 18:31:00
現在 compiler 太聰明了, 看到 hotspot 自動就會 inline真想在 release build 測出效能差別還滿難的
作者:
chchwy
(mat)
2016-09-29 22:23:00
把optimize開起來 那些函數幾乎全部都被inline
作者:
rodion
(r-kan/reminder)
2016-09-30 10:11:00
不見得會變快 如果碰到膨脹的CODE導致cache miss的話
作者: LiloHuang (十年一刻)
2016-09-30 10:21:00
inline 影響速度的可能性很多
https://goo.gl/AWM8UN
作者:
Hazukashiine
(私は幸せです)
2016-09-30 10:26:00
哈哈哈這是一樓附的鏈接啊 XDDD 默契
作者: LiloHuang (十年一刻)
2016-09-30 21:58:00
沒留意到之前有人貼過,總之多做 code profiling
繼續閱讀
[問題] 右值參照問題
klsdf
[問題] static變數用for迴圈與function重複宣告
redbee
[問題]編譯器不同的問題
zxcv4982543
[問題] 關於QT creator
benchen0812
Re: [問題] QT DESIGER產生CODE的地方
MOONY135
[問題] function create的方式
cooboy
Re: Visual Studio 與C問題
pttworld
Visual Studio 與C問題
Vinxer
[問題] 組合模式(Composite Pattern)到底是什麼
henry8168
Re: [問題] QT DESIGER產生CODE的地方
Serge45
Links
booklink
Contact Us: admin [ a t ] ucptt.com