ΠΠ΅Π½Π΄ΠΆΠ°ΠΌΠΈΠ½ Π‘Π°ΠΌΠΌΠ΅ΡΡΠΎΠ½ (Benjamin Summerton), Π°Π²ΡΠΎΡ ΡΠΈΡΡΠ΅ΠΌΡ ΡΡΠ°ΡΡΠΈΡΠΎΠ²ΠΊΠΈ Π»ΡΡΠ΅ΠΉ PSRayTracing, ΠΏΡΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π» Π²Π»ΠΈΡΠ½ΠΈΠ΅ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π² ΠΊΠΎΠ΄Π΅ Π½Π° ΡΠ·ΡΠΊΠ΅ Π‘++ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ³ΠΎ ΡΠ»ΠΎΠ²Π° «final», ΠΏΠΎΡΠ²ΠΈΠ²ΡΠ΅Π³ΠΎΡΡ Π² ΡΡΠ°Π½Π΄Π°ΡΡΠ΅ C++11. ΠΡΠΈΡΠΈΠ½ΠΎΠΉ ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΠΎΡΠ»ΡΠΆΠΈΠ»ΠΈ Π²ΠΈΡΠ°ΡΡΠΈΠ΅ Π² ΡΠ΅ΡΠΈ Π·Π°ΡΠ²Π»Π΅Π½ΠΈΡ, ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ «final» ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠΎΠ²ΡΡΠΈΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠ²Π°Π»ΠΈΡΡ ΠΎΡΠ΅Π½ΠΎΡΠ½ΡΠΌΠΈ ΡΡΠΆΠ΄Π΅Π½ΠΈΡΠΌΠΈ Π±Π΅Π· ΡΠΊΠ°Π·Π°Π½ΠΈΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ² ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ.
ΠΡΠΎΠ²Π΅Π΄ΡΠ½Π½ΠΎΠ΅ ΠΠ΅Π½Π΄ΠΆΠ°ΠΌΠΈΠ½ΠΎΠΌ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π»ΠΎ, ΡΡΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ «final» ΡΠΈΠ»ΡΠ½ΠΎ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ°. ΠΡΠΈ ΡΠ±ΠΎΡΠΊΠ΅ Π² GCC Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π² Π·Π°ΠΌΠ΅ΡΠ½ΠΎΠΌ ΡΠΈΡΠ»Π΅ ΡΠ»ΡΡΠ°Π΅Π² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π²ΠΎΠ·ΡΠ°ΡΡΠ°Π»Π°, Π½ΠΎ ΠΏΡΠΈ ΡΠ±ΠΎΡΠΊΠ΅ Π² Clang ΠΈ MSVC ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π² Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΡΠ»ΡΡΠ°Π΅Π² ΡΠ½ΠΈΠΆΠ°Π»Π°ΡΡ, ΠΏΡΠΈΡΡΠΌ Π±ΠΎΠ»Π΅Π΅ ΠΎΡΡΡΠΈΠΌΠΎ. ΠΡΠΈ ΡΡΠΎΠΌ Π±ΠΎΠ»ΡΡΠΎΠ΅ Π²Π»ΠΈΡΠ½ΠΈΠ΅, ΠΊΡΠΎΠΌΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ°, ΠΈΠΌΠ΅Π»Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΎΡΠ΅Π΄Π°Π½ΠΈΠ΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ Π±ΠΎΠ»ΡΡΠ΅ ΠΏΡΠΎΡΠ²Π»ΡΠ»ΠΈΡΡ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ΅ Ρ CPU AMD Ryzen 9 6900HX, ΡΠ΅ΠΌ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ΅ Ρ CPU Apple M1.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ΅ 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