爲何C++裏調用虛函數比調用普通函數慢?

爲何C++裏調用虛函數比調用普通函數慢? 緣由: - 運行時須要獲得對應類的函數的地址 - 當在用父類的引用或者指針調用虛函數時,會先從該對象的頭部取到虛函數的地址(C++標準規定虛函數表地址必須放最前),再從虛函數表中取到實際要調用的函數的地址,最終調用該函數 - 調用虛函數,相比普通函數,實際上多了三條指令:取虛表,取函數地址,call調用。 - 影響cpu流水線 - 編譯器不能是內聯函數 -
相關文章
相關標籤/搜索