LLVM lld linkerinin və chibicc kompilyatorunun müəllifi Rui Ueyama, obyekt faylı bağlantı sürətində GNU gold və LLVM lld linkerlərini əhəmiyyətli dərəcədə üstələyən yeni yüksək performanslı linkerin ilk stabil versiyası olan Mold-u buraxdı. Layihə istehsal üçün hazır hesab olunur və GNU linkerinin daha sürətli və şəffaf əvəzedicisi kimi istifadə edilə bilər. Linux-sistemlər. Növbəti böyük buraxılış üçün planlara platforma dəstəyinin yetkinliyə çatdırılması daxildir. macOS, bundan sonra Kalıbın uyğunlaşdırılması üzərində iş başlayacaq Windows.
Kalıp C++ (C++20) dilində yazılmışdır və şəbəkə xidmətlərini inkişaf etdirərkən dəyişikliklərin açılmasını tələb etdiyi üçün GPLv3-ə uyğun, lakin GPLv3-yə uyğun olmayan AGPLv2 lisenziyası altında paylanmışdır. Bu seçim inkişaf üçün maliyyə vəsaiti əldə etmək istəyi ilə bağlıdır - müəllif MIT kimi icazə verilən lisenziya əsasında yenidən lisenziyalaşdırma koduna hüquqlarını satmağa və ya AGPL-dən razı olmayanlar üçün ayrıca kommersiya lisenziyası verməyə hazırdır.
Kalıp GNU bağlayıcısının bütün xüsusiyyətlərini dəstəkləyir və çox sürətlidir, sadəcə cp ilə faylların surətini çıxarmağın yalnız yarısı sürətində əlaqələndirir. Məsələn, Chrome 96 (kod ölçüsü 1.89 GB) qurarkən, GNU gold istifadə edərək 8 nüvəli kompüterdə c debuginfo icra edilə bilən faylları qurmaq 53 saniyə, LLVM lld üçün 11.7 saniyə, Mold üçün isə cəmi 2.2 saniyə çəkir (kökdən 26 dəfə daha sürətli). GNU qızılı). Clang 13-ü (3.18 GB) birləşdirərkən GNU gold 64 saniyə, LLVM lld 5.8 saniyə, Mold isə 2.9 saniyə çəkir. Firefox 89-u (1.64 GB) birləşdirərkən GNU gold 32.9 saniyə, LLVM lld 6.8 saniyə, Mold isə 1.4 saniyə çəkir.

Bağlantı vaxtının azaldılması, sazlama və sınaq dəyişiklikləri zamanı icra edilə bilən faylların yaradılması prosesində gözləmə müddətini azaltmaqla böyük layihələrin işlənib hazırlanmasında istifadə imkanlarını xeyli yaxşılaşdıra bilər. Kalıp, koda hər bir dəyişiklikdən sonra əlaqənin tamamlanmasını gözləmək qıcıqlanması, həmçinin çox nüvəli sistemlərdə mövcud bağlayıcıların zəif işləməsi və lazımsız yerə müraciət etmədən əsaslı şəkildə fərqli bir əlaqə arxitekturasını sınamaq istəyi ilə motivasiya edilmişdir. artan keçid kimi mürəkkəb modellər.
Kompilyator tərəfindən Mold-də hazırlanmış çoxlu sayda obyekt fayllarından icra edilə bilən faylın əlaqələndirilməsinin yüksək performansı daha sürətli alqoritmlərdən istifadə etməklə, mövcud CPU nüvələri arasında əməliyyatları aktiv şəkildə paralelləşdirməklə və daha səmərəli məlumat strukturlarından istifadə etməklə əldə edilir. Məsələn, Mold, faylların surətinin çıxarılması, obyekt fayllarının yaddaşa əvvəlcədən gətirilməsi, simvolların həlli zamanı sürətli hash cədvəllərindən istifadə, ayrıca mövzuda yerdəyişmə cədvəllərinin skan edilməsi və müxtəlif fayllarda təkrarlanan birləşdirilmiş bölmələrin təkmilləşdirilməsi ilə eyni vaxtda intensiv hesablamaların aparılması texnikasını həyata keçirir.
Mənbə: opennet.ru
