Janë publikuar rezultatet e vlerësimit të ndikimit në performancën e rikonstruksionit të paketimeve për Ubuntu me opsione të ndryshme dhe realizime të funksioneve të menaxhimit të memories. Eksperimentuesi arriti të rrisë performancën e paketit jq me 90% (1.9 herë) duke e rikonstruktuar atë nga i njëjti paketë me kod burimor, pa bërë ndryshime në kodin vetë. Performanca u vlerësua duke matur kohën e ekzekutimit të një pyetjeje tipike filtrimi mbi të dhënat GeoJSON, me madhësi 500MB.
Përfundimet e eksperimenteve:
- Versioni i ndërtuar në GCC nga e njëjta tekst burimor me flagat e paracaktuar doli më i shpejtë se paketa binare Ubuntu me 2-4%.
- Rikonstruksioni në Clang 18 me nivelin e optimizimit '-O3', duke përfshirë optimizimin në fazën e lidhjes ('-flto') dhe duke çaktivizuar informacionin mbi debugging ('-DNDEBUG') çoi në një përshpejtim prej 20%.
- Rikonstruksioni me sistemin e shpërndarjes 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 shpĂ«rndarjes sĂ« memories tcmalloc, jemalloc dhe mimalloc pĂ«rmes «LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libâŠ.so» çoi nĂ« njĂ« rritje tĂ« performancĂ«s prej 27%, 29% dhe 44%. Kur u ekzekutua me mimalloc, i cili tregoi pĂ«rshpejtim prej 44%, u vendos variabla mjedisor «MIMALLOC_LARGE_OS_PAGES=1».
- Rikonstrukti i paketës me mimalloc në LDFLAGS në vend të lidhjes përmes LD_PRELOAD çoi në një përshpejtim të testit prej 90%. Një test tjetër që përpunoi 2.2GB të dhënash JSON në 13000 skedarë gjithashtu tregoi një rritje të performancës rreth dyfish.
Burimi: opennet.ru
