Производителността на Ubuntu пакета jq успя да се увеличи 1.9 пъти чрез повторно сглобяване.

Публикувани са резултатите от оценката на влиянието върху производителността на прекомпилирането на пакети за Ubuntu с различни опции и реализации на функции за управление на паметта. На експериментатора му се е удалось да увеличи производителността на пакета jq с 90% (в 1.9 пъти) с инструменти за обработка на данни във формат JSON, чрез стандартно прекомпилиране от същия пакет с изходен код, без промени в самия код. Производителността е оценявана чрез измерване на времето за изпълнение на типична филтрираща заявка върху GeoJSON данни с размер 500MB.

Резултати от експеримента:

  • Вариантът, компилиран с GCC от същите изходни кодове с подразбиращите се флагове, се оказа по-бърз от бинарния пакет на Ubuntu с 2-4%.
  • Пре-компилирането с Clang 18 на ниво оптимизация «-O3», включващо оптимизация в етапа на свързване («-flto») и изключване на отладъчна информация («-DNDEBUG»), доведе до ускорение от 20%.
  • Пре-компилирането с библиотеката за управление на памет TCMalloc (добавяне на «-L/usr/lib/x86_64-linux-gnu -ltcmalloc_minimal» в LDFLAGS) доведе до ускорение от 40%.
  • Смяната на функциите malloc с системи за управление на памет tcmalloc, jemalloc и mimalloc чрез «LD_PRELOAD=/usr/lib/x86_64-linux-gnu/lib….so» увеличи производителността с 27%, 29% и 44%. При стартиране с mimalloc, който демонстрира ускорение от 44%, беше зададена променлива на средата «MIMALLOC_LARGE_OS_PAGES=1».
  • Пре-компилирането на пакета с mimalloc в LDFLAGS вместо свързването чрез LD_PRELOAD доведе до ускорение на теста с 90%. Друг тест за обработка на JSON данни от 2.2GB в 13000 файла също показа увеличение на производителността от около два пъти.

Източник: opennet.ru

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster