Mold, en moderne Linker overlegen i forhold til GNU guld og LLVM lld

Rui Ueyama, forfatter til LLVM lld komponisten og chibicc compiler, afsløret siden lidt frugterne af hans nye arbejde og præsenteret den første stabile version af den nye «high-linker the Mold», som skiller sig ud ved at være langt foran linkraten for GNU gold og LLVM lld objektfillinkere.

I øjeblikket er projektet anses for klar til produktionsinstallationer og det kan bruges som en hurtigere gennemsigtig erstatning for GNU-linkeren på Linux-systemer.

Om Skimmelsvamp

Mold understøtter alle funktionerne i GNU-linkeren og den har en meget høj ydeevne, da de links, den laver, kun er dobbelt så langsomme som blot at kopiere filer med cp-værktøjet.

For eksempel, når du kompilerer Chrome 96 (kodestørrelse 1,89 GB), tager det 8 sekunder at forbinde eksekverbare filer med debuginfo på en 53-core computer med GNU Gold, LLVM lld tager 11,7 sekunder, og Mold kun 2,2 sekunder (26 gange hurtigere end GNU Gold) .

Når du forbinder Clang 13 (3,18 GB), tager GNU gold 64 sekunder, LLVM lld tager 5,8 sekunder og Mold tager 2,9 sekunder, og når du forbinder Firefox 89 (1,64 GB), tager GNU gold 32,9, 6,8 sekunder, LLVM lld tager 1,4 sekunder og Skimmelsvamp tager XNUMX sekunder.

mold 1.0 er den første stabile og produktionsklare version af højhastighedslinkeren. På Linux-baserede systemer burde det "bare fungere" som en hurtigere direkte erstatning for standard GNU-linkeren for de fleste brugerprogrammer. Hvis du opretter en stor eksekverbar fil, der tager lang tid at linke, er det værd at teste skabelonen for at se, om den kan forkorte kompileringstiden. Formen er nem at bygge og bruge.

På denne måde at reducere kompileringstiden forbedrer bekvemmeligheden ved at udvikle store projekter markant ved at reducere ventetiden i den eksekverbare filgenereringsprocessen ved fejlfinding og test af ændringer.

Motivationen for at skabe Mold var irritationen over at skulle vente på, at linket blev fuldført efter hver kodeændring, samt den lave effektivitet af eksisterende linkere i multicore-systemer og ønsket om at teste en fundamentalt anderledes linkarkitektur uden at ty til unødvendigt komplicerede modeller såsom inkrementel linking.

Den høje ydeevne ved at linke en eksekverbar fil fra et stort antal compiler-forberedte objektfiler i Mold opnås gennem brug af hurtigere algoritmer, aktiv parallelisering af operationer mellem tilgængelige CPU-kerner og mere effektiv brug af datastrukturer.

For eksempel implementerer Mold en teknik til at udføre beregningsintensivt samtidig med filkopiering, proaktivt indlæsning af objektfiler i hukommelsen, brug af hurtige hashtabeller ved løsning af tegn, scanning af flytningstabeller i en separat sekvens og deduplikering af sektioner, der gentages i forskellige filer.

Endelig skal det bemærkes, at Skimmelsvamp er skrevet i C++ 20 og distribueres under AGPLv3-licensen, som er GPLv3-kompatibel, men ikke GPLv2-kompatibel, da det kræver åbenhedsændringer ved udvikling af netværkstjenester. Dette valg forklares af ønsket om at modtage midler til udvikling: forfatteren er klar til at sælge rettighederne til koden for at genlicensere under en tilladelig licens såsom MIT, eller at give en separat kommerciel licens til dem, der ikke er tilfredse med AGPL.

Hvad angår fremtidige planer at de har, nævnes det, at pt arbejder på formen til macOS  (selvom denne version 1.0-understøttelse allerede er tilføjet, men stadig betragtes som alfa), og når den er færdig, vil supporten blive frigivet i version 2.0 af Mold og efter det nævnes det, at det vil virke i Mould til Windows og vil blive implementeret i version 3.0.

Si du vil vide mere om dette projekt eller du vil kompilere det for at kunne bruge det på dit system, kan du tjekke detaljerne og/eller kompileringsinstruktionerne I det følgende link.


Vær den første til at kommentere

Efterlad din kommentar

Din e-mailadresse vil ikke blive offentliggjort. Obligatoriske felter er markeret med *

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Control SPAM, management af kommentarer.
  3. Legitimering: Dit samtykke
  4. Kommunikation af dataene: Dataene vil ikke blive kommunikeret til tredjemand, undtagen ved juridisk forpligtelse.
  5. Datalagring: Database hostet af Occentus Networks (EU)
  6. Rettigheder: Du kan til enhver tid begrænse, gendanne og slette dine oplysninger.