Avaldatud on tulemused pakettide ümberkompileerimise mõjude hindamisest Ubuntu jaoks erinevate valikute ja mälu eraldamise funktsioonide rakendustega. Eksperimentaator suutis suurendada jq paketi jõudlust 90% (1,9 korda) võrra, kasutades andmete töötlemise tööriista JSON-vormingus, tavapärase ümberkompileerimise abil samast pakendist lähtekoodiga, ilma koodi muudatusteta. Jõudlust hindati, mõõtes typiseeritud filtreerimispäringu teostamise aega 500 MB suuruste GeoJSON-andmete puhul.
Eksperimendi tulemused:
- GCC-s vaikeseadetega kokku toodetud versioon osutus 2-4% kiiremaks kui Ubuntu binaarpakett.
- Clang 18-s, kasutades optimeerimise taset '-O3', lisades lingimise optimeerimise ('-flto') ja eemaldades silumisinfot ('-DNDEBUG'), saavutati 20% kiirusetõus.
- Mälu jaotussüsteemi TCMalloc kasutamine (lisades ' -L/usr/lib/x86_64-linux-gnu -ltcmalloc_minimal' LDFLAGS-sse) tõi kaasa 40% kiirusetõusu.
- malloc-funktsioonide asendamine tcmalloci, jemalloci ja mimalloci mälu jaotussüsteemidega läbi 'LD_PRELOAD=/usr/lib/x86_64-linux-gnu/lib….so' tõi kaasa jõudluse tõusu vastavalt 27%, 29% ja 44%. Käivitades mimallociga, mis näitas 44% kiirusetõusu, oli keskkonnamuutuja 'MIMALLOC_LARGE_OS_PAGES=1' seadistatud.
- Paketi ümberkompileerimine mimallociga LDFLAGSis, mitte LD_PRELOADi kaudu sidumine, tõi kaasa 90% kiirusetõusu testide läbimisel. Teine test 2,2 GB JSON-andmete töötlemiseks 13000 failiga näitas samuti jõudluse kaks korda suurenemist.
Allikas: opennet.ru
