接口的用途無需多言。但這並不意味着可在任何場合使用接口,要知道經過接口調用和普通調用存在很大差異。首先,相比靜態綁定,動態綁定性能要差不少;其次,運行期需額外開銷,好比接口會複製對象,哪怕僅是個指針,也會在堆上增長一個需 GC 處理的目標。性能
顯然,對於壓力很大的內部組件之間,用接口有些得不償失。測試
對比接口調用和普通調用的彙編指令,以便有個直觀的認識。spa
普通調用被內聯,但接口調用就沒有這個待遇了。指針
就算在 ifaceCall 內部,依然須要經過接口相關機制完成調用。對象
好了,有關接口的更多細節就不是本文須要闡述的了。總之,作任何選擇前,多作測試總歸是不壞的。接口
最新動態,請掃碼關注圖片