国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C++ > 正文

淺談VC++中的內聯

2020-01-26 15:03:59
字體:
來源:轉載
供稿:網友

內聯的語法

在類聲明中定義方法;
內聯方法放在類聲明之外,但必須出現在頭文件中,且內聯方法聲明中使用inline標識;
注:inline只是對編譯器的建議,是否內聯的決定權在編譯器;

內聯節省的開銷

函數調用開銷
調用間優化 優秀的編譯器可是內聯方法的邊界難以區分(將代碼內聯后,對代碼進行重新排列)

內聯帶來的問題

代碼膨脹(空間開銷)
由于代碼膨脹帶來的頁面緩存命中率下降
編譯時間增加
修改文件后相關文件都需要重新編譯;
由于函數邊界模糊,該內聯函數遇到問題后不好排查;

內聯函數的建議

優化時,只針對高頻代碼內聯;
對于調用頻率高的(80%以上場景都會走到的路徑):
函數規模<5行:總是內聯;
5-20行,將高頻率的調用點選擇性內聯;
超過20行,重寫方法,體現出快速路徑并將其內聯;

內聯的技巧

將內聯工作放到開發周期后期
使用條件內聯,通過宏和編譯選項的技巧控制在開發初期不內聯,而到開發后期再加上自定義內聯選項進行內聯;
SPARC體系結構中的內聯

SPARC中有充足的寄存器,在限定的調用深度范圍內幾乎沒有調用返回的性能損失(無須在調用時存儲就的寄存器內容),所有,這種體系結構的內聯效果甚微,一般不用考慮內聯;

以上所述就是本文的全部內容了,希望大家能夠喜歡。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 葵青区| 曲麻莱县| 北安市| 垦利县| 时尚| 新宁县| 那坡县| 武义县| 溧水县| 滁州市| 珠海市| 崇左市| 临沭县| 大庆市| 志丹县| 铜梁县| 大港区| 寻甸| 分宜县| 钟祥市| 星子县| 浦江县| 台湾省| 六安市| 定边县| 绍兴市| 得荣县| 铜陵市| 东乡县| 青州市| 清流县| 怀宁县| 三河市| 鸡泽县| 临城县| 韶关市| 重庆市| 朝阳市| 云南省| 德州市| 全南县|