Analiza utjecaja ključne riječi final na performanse C++ programa

Benjamin Summerton, autor PSRayTracing sustava za praćenje zraka, analizirao je utjecaj korištenja ključne riječi „final” u C++ kodu na performanse aplikacija, koja se pojavila u C++11 standardu. Razlog provođenja testiranja bila su iskazivanja na mreži da upotreba „final” može povećati performanse, koja su bila ograničena procjenama bez navođenja rezultata promjena.

Testiranje koje je proveo Benjamin pokazalo je da performanse prilikom korištenja „final” u velikoj mjeri ovise o prevodilac. Prilikom kompajliranja u GCC, u značajnom broju slučajeva performanse su se zaista povećavale, ali prilikom kompajliranja u Clang i MSVC performanse su se u većini slučajeva smanjivale, a ta je razlika bila značajnija. Osim prevodioca, platforma je također imala velik utjecaj; primjerice, pad performansi bio je izraženiji na sustavu s CPU-om AMD Ryzen 9 6900HX nego na sustavu s CPU-om Apple M1.

Analiza utjecaja ključne riječi final na performanse C++ programa
Analiza utjecaja ključne riječi final na performanse C++ programa

Na sustavu AMD Ryzen 9 6900HX s Ubuntu 23.10, prilikom kompajliranja u Clang, u 90% testova zabilježeno je usporenje rada od najmanje 5% pri korištenju „final”, dok je u 2.5% slučajeva zabilježeno ubrzanje od najmanje 5%. Za GCC, usporenje od 5% zabilježeno je u 0.9% slučajeva, a ubrzanje od 5% u 15.8% slučajeva. U MSVC, usporenje od 5% zabilježeno je u 26.2% testova, a ubrzanje od 5% u 13.3%. Autor istraživanja zaključio je da treba izbjegavati upotrebu „final”.

Izvor: opennet.ru

Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere 🔥 Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere | ProHoster