Performanța pachetului Ubuntu jq a fost crescută de 1,9 ori prin recompilare

Au fost publicate rezultatele evaluării impactului asupra performanței recompilării pachetelor pentru Ubuntu cu diferite opțiuni și implementări ale funcțiilor de alocare a memoriei. Experimentatorul a reușit să îmbunătățească performanța pachetului jq, un instrument pentru prelucrarea datelor în format JSON, cu 90% (de 1.9 ori) prin recompilarea din același pachet cu cod sursă, fără a face modificări în codul propriu-zis. Performanța a fost evaluată prin măsurarea timpului de execuție a unei interogări filtrate standard asupra datelor GeoJSON, cu o dimensiune de 500MB.

Rezultatele experimentului:

  • Varianta compilată în GCC din aceleași surse cu flag-urile implicite s-a dovedit a fi mai rapidă decât pachetul binar Ubuntu cu 2-4%.
  • Recompilarea în Clang 18 cu nivelul de optimizare „-O3”, activarea optimizării la etapa de legare („-flto”) și dezactivarea informațiilor de depanare („-DNDEBUG”) a dus la o accelerare de 20%.
  • Recompilarea cu sistemul de alocare a memoriei TCMalloc (adăugarea „-L/usr/lib/x86_64-linux-gnu -ltcmalloc_minimal” în LDFLAGS) a dus la o accelerare de 40%.
  • Înlocuirea funcțiilor malloc cu sistemele de alocare a memoriei tcmalloc, jemalloc și mimalloc prin „LD_PRELOAD=/usr/lib/x86_64-linux-gnu/lib….so” a dus la o creștere a performanței cu 27%, 29% și 44%. La rularea cu mimalloc, care a arătat o accelerare de 44%, variabila de mediu „MIMALLOC_LARGE_OS_PAGES=1” a fost setată.
  • Recompilarea pachetului cu mimalloc în LDFLAGS în loc de legarea prin LD_PRELOAD a dus la o accelerare a testului cu 90%. Un alt test de procesare a datelor JSON de 2.2GB în 13000 de fișiere a arătat, de asemenea, o creștere a performanței de aproximativ două ori.

Sursa: opennet.ro

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster