Анализ влияния ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова final Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ C++

Π‘Π΅Π½Π΄ΠΆΠ°ΠΌΠΈΠ½ Π‘Π°ΠΌΠΌΠ΅Ρ€Ρ‚ΠΎΠ½ (Benjamin Summerton), Π°Π²Ρ‚ΠΎΡ€ систСмы трассировки Π»ΡƒΡ‡Π΅ΠΉ PSRayTracing, ΠΏΡ€ΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π» влияниС Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ использованиС Π² ΠΊΠΎΠ΄Π΅ Π½Π° языкС Π‘++ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова «final», появившСгося Π² стандартС C++11. ΠŸΡ€ΠΈΡ‡ΠΈΠ½ΠΎΠΉ провСдСния тСстирования послуТили Π²ΠΈΡ‚Π°ΡŽΡ‰ΠΈΠ΅ Π² сСти заявлСния, Ρ‡Ρ‚ΠΎ использованиС «final» позволяСт ΠΏΠΎΠ²Ρ‹ΡΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°Π»ΠΈΡΡŒ ΠΎΡ†Π΅Π½ΠΎΡ‡Π½Ρ‹ΠΌΠΈ суТдСниями Π±Π΅Π· указания Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ.

ΠŸΡ€ΠΎΠ²Π΅Π΄Ρ‘Π½Π½ΠΎΠ΅ Π‘Π΅Π½Π΄ΠΆΠ°ΠΌΠΈΠ½ΠΎΠΌ тСстированиС ΠΏΠΎΠΊΠ°Π·Π°Π»ΠΎ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΈ использовании «final» сильно зависит ΠΎΡ‚ компилятора. ΠŸΡ€ΠΈ сборкС Π² GCC Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π² Π·Π°ΠΌΠ΅Ρ‚Π½ΠΎΠΌ числС случаСв ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ возрастала, Π½ΠΎ ΠΏΡ€ΠΈ сборкС Π² Clang ΠΈ MSVC ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ случаСв сниТалась, ΠΏΡ€ΠΈΡ‡Ρ‘ΠΌ Π±ΠΎΠ»Π΅Π΅ ΠΎΡ‰ΡƒΡ‚ΠΈΠΌΠΎ. ΠŸΡ€ΠΈ этом большоС влияниС, ΠΊΡ€ΠΎΠΌΠ΅ компилятора, ΠΈΠΌΠ΅Π»Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, просСданиС ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ большС ΠΏΡ€ΠΎΡΠ²Π»ΡΠ»ΠΈΡΡŒ Π½Π° систСмС с CPU AMD Ryzen 9 6900HX, Ρ‡Π΅ΠΌ Π½Π° систСмС с CPU Apple M1.

Анализ влияния ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова final Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ C++
Анализ влияния ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова final Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ C++

НапримСр, Π½Π° систСмС AMD Ryzen 9 6900HX с Ubuntu 23.10 ΠΏΡ€ΠΈ сборкС Π² Clang Π² 90% тСстов ΠΏΡ€ΠΈ использовании «final» наблюдалось Π·Π°ΠΌΠ΅Π΄Π»Π΅Π½ΠΈΠ΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ Π½Π° 5%, Π½ΠΎ Π² 2.5% случаСв Ρ„ΠΈΠΊΡΠΈΡ€ΠΎΠ²Π°Π»ΠΎΡΡŒ ускорСниС ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ Π½Π° 5%. Для GCC Π·Π°ΠΌΠ΅Π΄Π»Π΅Π½ΠΈΠ΅ Π½Π° 5% Ρ„ΠΈΠΊΡΠΈΡ€ΠΎΠ²Π°Π»ΠΎΡΡŒ Π² 0.9% случаСв, Π° ускорСниС Π½Π° 5% — Π² 15.8% случаСв. Π’ MSVC 5% Π·Π°ΠΌΠ΅Π΄Π»Π΅Π½ΠΈΠ΅ наблюдалось Π² 26.2% тСстов, Π° 5% ускорСниС — 13.3%. Для сСбя Π°Π²Ρ‚ΠΎΡ€ исслСдования сдСлал Π²Ρ‹Π²ΠΎΠ΄ ΠΎ нСобходимости ΠΈΠ·Π±Π΅Π³Π°Ρ‚ΡŒ использованиС «final».

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ