C_and_CPP 板


LINE

以 (SGI) C++ STL std::list 的例子來說: 因為涉及很多對資料結構低階的操作,所以實作上勢必有很多內部函數的呼叫, 像是 protected: void transfer(...); 就是一個明顯的例子,被反覆呼叫很多次。 假使不在乎編譯出來的執行檔膨脹的問題的話,把執行的速度作為最高的原則, 那大家覺得如果把所有函式 inline ,能快上多少?快很多?還是一點點而已? 畢竟很多時候效能的瓶頸就卡在那個最底層的東西上面。 --



※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.113.66.155
※ 文章網址: https://webptt.com/m.aspx?n=bbs/C_and_CPP/M.1475139910.A.DE0.html
1F:→ Caesar08: 來看Standard C++怎麼說https://goo.gl/5QiT8y 09/29 17:17
2F:→ Hazukashiine: 哈哈哈哈哈哈 我昨天就在看這個耶 !!! 09/29 17:19
3F:→ Hazukashiine: 只是有點好奇 大家會怎麼覺得 OwO 09/29 17:20
4F:→ Caesar08: 那你就知道 你問的問題很難有正確答案了 09/29 17:20
5F:→ Hazukashiine: 但是我已經快要有答案啦哈哈哈 因為我正實作一個 09/29 17:22
6F:→ Hazukashiine: 完全沒有函數呼叫開銷的 linked list container 09/29 17:22
7F:→ Hazukashiine: 正因為他們說不一定 所以才更想知道 如果做出來了 09/29 17:24
8F:→ Hazukashiine: 到底是變快還是變慢 還是根本沒影響 09/29 17:24
9F:→ Caesar08: gcc有__attribute__((always_inline)) 09/29 17:28
10F:→ Caesar08: VC++有__forceinline。把這個加在他們實作的std::list就 09/29 17:28
11F:→ Caesar08: 好了吧? 09/29 17:29
12F:→ Hazukashiine: 那個還沒試過 但是我想要用 C 語言去實作這樣的東西 09/29 17:37
13F:推 pili100: 有實驗精神 09/29 17:59
void _M_transfer(_List_node_base* const __first, _List_node_base* const __last) throw () __attribute__((always_inline)); 剛剛把呼叫最多次的 _M_transfer 加上 compiler hint 一點效能改變都沒有 然後為了確定改的是正確的地方 偷偷把 attribute 拼錯 果然編譯失敗 XDDD http://imgur.com/1OVjug5 我猜編譯器應該已經預設 inline 了吧(? ※ 編輯: Hazukashiine (140.113.66.155), 09/29/2016 18:13:42
14F:→ uranusjr: 現在 compiler 太聰明了, 看到 hotspot 自動就會 inline 09/29 18:31
15F:→ uranusjr: 真想在 release build 測出效能差別還滿難的 09/29 18:32
16F:推 chchwy: 把optimize開起來 那些函數幾乎全部都被inline 09/29 22:23
17F:→ rodion: 不見得會變快 如果碰到膨脹的CODE導致cache miss的話 09/30 10:11
18F:推 LiloHuang: inline 影響速度的可能性很多 https://goo.gl/AWM8UN 09/30 10:21
19F:→ Hazukashiine: 哈哈哈這是一樓附的鏈接啊 XDDD 默契 09/30 10:26
20F:→ LiloHuang: 沒留意到之前有人貼過,總之多做 code profiling 09/30 21:58







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:iOS站內搜尋

TOP