Analisis kesan kata kunci akhir terhadap prestasi program C++

Benjamin Summerton, pengarang sistem pengesanan sinar PSRayTracing, menganalisis kesan ke atas prestasi aplikasi menggunakan kata kunci "akhir", yang muncul dalam standard C++11, dalam kod C++. Sebab untuk ujian adalah bahawa terdapat dakwaan yang berlegar di Internet bahawa menggunakan "akhir" akan meningkatkan prestasi, yang terhad kepada pertimbangan nilai tanpa menunjukkan keputusan perubahan.

Ujian Benjamin menunjukkan bahawa prestasi apabila menggunakan "akhir" sangat bergantung pada pengkompil. Apabila membina dalam GCC, prestasi sebenarnya meningkat dalam bilangan kes yang ketara, tetapi apabila membina dalam Clang dan MSVC, prestasi dalam kebanyakan kes menurun, dan lebih ketara. Pada masa yang sama, sebagai tambahan kepada pengkompil, platform mempunyai pengaruh yang besar sebagai contoh, kemerosotan prestasi lebih ketara pada sistem dengan CPU AMD Ryzen 9 6900HX daripada pada sistem dengan CPU Apple M1.

Analisis kesan kata kunci akhir terhadap prestasi program C++
Analisis kesan kata kunci akhir terhadap prestasi program C++

Sebagai contoh, pada sistem AMD Ryzen 9 6900HX dengan Ubuntu 23.10, apabila membina di Clang, 90% ujian apabila menggunakan "akhir" menunjukkan kelembapan sekurang-kurangnya 5%, tetapi dalam 2.5% kes kelajuan sekurang-kurangnya 5% telah direkodkan. Untuk GCC, kelembapan 5% direkodkan dalam 0.9% kes dan pecutan 5% dalam 15.8% kes. Dalam MSVC, kelembapan 5% diperhatikan dalam 26.2% ujian, dan pecutan 5% diperhatikan dalam 13.3%. Bagi dirinya sendiri, pengarang kajian menyimpulkan bahawa adalah perlu untuk mengelakkan penggunaan "akhir".

Sumber: opennet.ru

Tambah komen