Ubuntu paketinin jq performansını 1.9 dəfə artırmaq üçün yenidən qurma yolu ilə mümkün oldu

Yenidən tərtib edilən paketlərin performansına təsirin qiymətləndirilməsi üçün Ubuntu üçün müxtəlif seçimlər və yaddaş ayırma funksiyalarının həyata keçirilməsi nəticələri dərc edilib. Eksperimentator, kodu dəyişdirmədən, orijinal kodla eyni paketin adi yenidən tərtibi yolu ilə jq paketi üçün JSON formatında məlumatların işlənməsi alətindən istifadə edərək performansı 90% (1.9 dəfə) artırmağı bacarıb. Performans, 500MB ölçüsündə GeoJSON məlumatları üzərində tipik filtrələmə sorğusunun icra müddətinin ölçülməsi ilə qiymətləndirilib.

Eksperimentin nəticələri:

  • GCC-da eyni mətnlərdən standart bayraqlarla tərtib edilən variant, Ubuntu-nun ikili paketi ilə müqayisədə 2-4% daha sürətli olub.
  • Clang 18-də „-O3“ optimizasiya səviyyəsi, bağlantı mərhələsində optimizasiya („-flto“) və debuq məlumatlarının deaktiv edilməsi („-DNDEBUG“) ilə yenidən tərtib edilməsi 20% sürət artımına səbəb olub.
  • TCMalloc yaddaş paylanma sistemi ilə yenidən tərtib (LDFLAGS-ə „-L/usr/lib/x86_64-linux-gnu -ltcmalloc_minimal“ əlavə etməklə) 40% sürət artımına səbəb olub.
  • malloc funksiyalarının tcmalloc, jemalloc və mimalloc yaddaş paylanma sistemləri ilə „LD_PRELOAD=/usr/lib/x86_64-linux-gnu/lib….so“ vasitəsilə əvəzlənməsi nəticəsində performans 27%, 29% və 44% artıb. 44% sürət artımı göstərən mimalloc istifadə edildikdə, mühit dəyişəni „MIMALLOC_LARGE_OS_PAGES=1" təyin edilib.
  • LDFLAGS-də mimalloc ilə paket yenidən tərtib edilməsi, LD_PRELOAD vasitəsilə bağlantıdan fərqli olaraq 90% test keçirilməsi sürət artımına səbəb olub. 2.2GB JSON məlumatlarının 13000 faylda işlənməsi üzrə digər testdə də performansın təxminən iki dəfə artması müşahidə edilib.

Mənbə: opennet.ru

DDoS qoruması olan saytlara etibarlı hosting satın alın, VPS VDS serverlər 🔥 DDoS qoruması olan saytlara etibarlı hosting satın alın, VPS VDS serverlər | ProHoster