Final關鍵字對C++程式效能的影響分析

PSRayTracing 光線追蹤系統的作者 Benjamin Summerton 分析了在 C++ 程式碼中使用 C++11 標準中出現的「final」關鍵字對應用程式效能的影響。之所以進行測試,是因為網路上流傳有說法稱使用「final」會提高效能,但僅限於價值判斷,並未顯示更改結果。

本傑明的測試表明,使用“final”時的效能高度依賴編譯器。在 GCC 中建置時,效能實際上在許多情況下有所提高,但在 Clang 和 MSVC 中建置時,大多數情況下效能下降,而且更明顯。同時,除了編譯器之外,平台也有很大的影響;例如,在AMD Ryzen 9 6900HX CPU的系統上效能下降比在Apple M1 CPU的系統上更為明顯。

Final關鍵字對C++程式效能的影響分析
Final關鍵字對C++程式效能的影響分析

例如,在執行 Ubuntu 9 的 AMD Ryzen 6900 23.10HX 系統上,在 Clang 中建置時,使用「final」時 90% 的測試顯示速度至少下降 5%,但在 2.5% 的情況下加速至少 5%被記錄。對於 GCC,5% 的情況下出現 0.9% 的減速,5% 的情況下出現 15.8% 的加速。在 MSVC 中,5% 的測試中觀察到 26.2% 的減速,5% 的測試中觀察到 13.3% 的加速。研究的作者本人得出的結論是,有必要避免使用「final」。

來源: opennet.ru

添加評論