Վերջնական բանալի բառի ազդեցության վերլուծություն C++ ծրագրերի կատարման վրա

Բենջամին Սամերթոնը, PSRayTracing ճառագայթների հետագծման համակարգի հեղինակը, վերլուծել է C++ կոդում «վերջնական» բանալի բառի օգտագործման ազդեցությունը հավելվածի կատարման վրա, որը ներդրվել է C++11 ստանդարտում: Թեստի անցկացման պատճառը համացանցում տարածված պնդումներն էին, որ «վերջնական»-ի օգտագործումը կարող է բարելավել կատարողականը, որոնք սահմանափակվում էին արժեքային դատողություններով՝ առանց փոփոխությունների արդյունքները նշելու:

Բենջամինի փորձարկումները ցույց տվեցին, որ «final»-ի օգտագործման ժամանակ կատարողականությունը մեծապես կախված է կոմպիլյատորից: GCC-ի կառուցման ժամանակ կատարողականությունը զգալիորեն աճել է, սակայն Clang-ի և MSVC-ի կառուցման ժամանակ կատարողականությունը նվազել է դեպքերի մեծ մասում, և ավելի նկատելիորեն: Միևնույն ժամանակ, կոմպիլյատորից բացի, հարթակն էլ մեծ ազդեցություն է ունեցել, օրինակ՝ կատարողականության անկումն ավելի նկատելի էր AMD Ryzen 9 6900HX պրոցեսորով համակարգի վրա, քան Apple M1 պրոցեսորով համակարգի վրա:


Վերջնական բանալի բառի ազդեցության վերլուծություն C++ ծրագրերի կատարման վրա

Վերջնական բանալի բառի ազդեցության վերլուծություն C++ ծրագրերի կատարման վրա

Օրինակ, AMD Ryzen 9 6900HX համակարգի վրա Ubuntu Հոկտեմբերի 23.10-ին, Քլանգում կառուցման ժամանակ, թեստերի 90%-ը ցույց տվեց առնվազն 5% դանդաղում «final»-ի օգտագործման դեպքում, սակայն թեստերի 2.5%-ը ցույց տվեց առնվազն 5% արագացում։ GCC-ի դեպքում 5% դանդաղում նկատվեց թեստերի 0.9%-ում և 5% արագացում՝ դեպքերի 15.8%-ում։ MSVC-ի դեպքում 5% դանդաղում նկատվեց թեստերի 26.2%-ում և 5% արագացում՝ դեպքերի 13.3%-ում։ Ուսումնասիրության հեղինակը եզրակացրեց, որ «final»-ի օգտագործումից պետք է խուսափել։

Source: opennet.ru

Գնեք հուսալի հոստինգ DDoS պաշտպանությամբ կայքերի, VPS VDS սերվերների համար 🔥 Գնեք հուսալի կայքերի հոսթինգ՝ DDoS պաշտպանությամբ, VPS VDS սերվերներով | ProHoster