Shtyhen rezultatet e vlerësimit të ndikimit në performancën e rikompilimit të pakove për Ubuntu me opsione të ndryshme dhe realizime të funksioneve të ndarjes së memories. Eksperimentatori arriti të rrisë performancën e paketës jq me 90% (1.9 herë) me një vegël për përpunimin e të dhënave në formatin JSON, duke e rikompiluar atë nga e njëjta paketë me burim, pa bërë ndryshime në vetë kodin. Performanca u vlerësua përmes matjes së kohës së ekzekutimit të një pyetjeje filtrimi tipike mbi të dhënat GeoJSON, me madhësi 500MB.
Përmbledhja e eksperimentit:
- Versioni i ndërtuar në GCC nga të njëjtët burime me flagat e paracaktuar rezultoi më i shpejtë se paketa binare Ubuntu me 2-4%.
- Rikompilimi në Clang 18 me nivelin e optimizimit '-O3', përfshirjen e optimizimit në fazën e lidhjes ('-flto') dhe çaktivizimin e informacionit të debug të përfshirë ('-DNDEBUG') çoi në një përshpejtim prej 20%.
- Rikompilimi me sistemin e ndarjes së memories TCMalloc (shtimi i '-L/usr/lib/x86_64-linux-gnu -ltcmalloc_minimal' në LDFLAGS) çoi në një përshpejtim prej 40%.
- ZĂ«vendĂ«simi i funksioneve malloc me sistemet e ndarjes sĂ« memories tcmalloc, jemalloc dhe mimalloc pĂ«rmes 'LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libâŠ.so', çoi nĂ« rritjen e performancĂ«s me 27%, 29% dhe 44%. GjatĂ« ekzekutimit me mimalloc, i cili tregoi njĂ« pĂ«rshpejtim prej 44%, u vendos variabli mjedisor 'MIMALLOC_LARGE_OS_PAGES=1'.
- Rikompilimi i paketës me mimalloc në LDFLAGS në vend të lidhjes përmes LD_PRELOAD çoi në përshpejtimin e testit me 90%. Një test tjetër për përpunimin e të dhënave JSON 2.2GB në 13000 skedare gjithashtu tregoi një rritje në performancë prej afërsisht dy herë.
Burimi: opennet.ru
