Mold 1.1 on jo julkaistu, tiedä uutiset tästä nykyaikaisesta Linkeristä, joka on parempi kuin GNU kulta ja LLVM

Useita päiviä sitten modernin Linker Mold 1.1:n uusi versio julkistettiin, jota voidaan käyttää nopeampana läpinäkyvänä korvaajana GNU-linkkerille Linux-järjestelmissä.

Tässä uudessa versiossa mold 1.1 on versio, joka sisältää uusia ominaisuuksia, virheenkorjauksia ja suorituskyvyn parannuksia.

Tietoja Moldista

Muotti tukee kaikkia GNU-linkerin ominaisuuksia ja se on erittäin suorituskykyinen, koska sen tekemät linkit ovat vain kaksi kertaa nopeampia kuin tiedostojen kopioiminen cp-apuohjelmalla.

Tällä tavalla käännösajan lyhentäminen parantaa merkittävästi suurten projektien kehittämisen mukavuutta lyhentämällä odotusaikaa suoritettavan tiedoston luontiprosessissa virheenkorjauksen ja muutosten testauksen yhteydessä.

Motiivina Moldin luomiseen oli ärsytys, joka joutui odottamaan linkin valmistumista jokaisen koodinvaihdon jälkeen, sekä olemassa olevien linkkereiden alhainen tehokkuus moniytimisissä järjestelmissä ja halu testata täysin erilaista linkkiarkkitehtuuria turvautumatta tarpeettoman monimutkaisiin malleihin, kuten inkrementaaliseen linkitykseen.

Suoritettavan tiedoston linkittäminen suuresta määrästä kääntäjän valmistamia objektitiedostoja Moldissa saavutetaan nopeampien algoritmien käytöllä, käytettävissä olevien prosessoriytimien toimintojen aktiivisella rinnakkaisuudella ja tehokkaammalla tietorakenteiden käytöllä.

Esimerkiksi Mold toteuttaa tekniikan, jolla voidaan suorittaa intensiivisiä laskelmia samanaikaisesti tiedostojen kopiointi, objektitiedostojen ennakoiva lataaminen muistiin, nopeiden hash-taulukoiden käyttäminen merkkien selvittämisessä, siirtotaulukoiden skannaus erillisessä virrassa ja kopioiden poistaminen osioista jotka toistuvat eri tiedostoissa.

Muotin tärkeimmät uutuudet 1.1

Tässä esitellyssä Mold 1.1:n uudessa versiossa korostetaan, että tuki linkkivaiheen optimointiin (LTO, linkkiajan optimointi).

LTO-optimoinnit eroavat ottamalla huomioon kaikkien rakennusprosessiin osallistuvien tiedostojen tilan, kun taas perinteiset optimointitilat optimoivat jokaisen tiedoston erikseen eivätkä ota huomioon muissa tiedostoissa määritettyjä toimintojen kutsumisehtoja.

Aikaisemmin, kun GCC- tai LLVM-välikooditiedostoja (IR) kohdattiin, kutsuttiin sopivia ld.bfd- tai ld.lld-linkkejä, mutta nyt Mold käsittelee IR-tiedostoja yksinään ja käyttää Linker-laajennuksen API:ta, jota käytetään myös GNU ld:ssä ja GNU kultalinkkerit. Nopeus, kun LTO on käytössä, on vain hieman nopeampi kuin muut linkittäjät, koska suurin osa ajasta kuluu koodin optimointiin, ei linkittämiseen.

Se on myös korostettu lisätty vaihtoehtoja “–print-dependencies” ja “–print-dependencies=full” pTietojen luominen CSV-muodossa riippuvuuksista syötetiedostojen välillä, jota voidaan käyttää esimerkiksi analysoimaan yhteyssyitä linkitettäessä tiettyjä objektitiedostoja tai minimoimaan tiedostojen välisiä riippuvuuksia.

Toinen uudesta versiosta erottuva muutos on se tuki RISC-V-arkkitehtuurille (RV64) isäntä- ja kohdealustoilla.

Sen lisäksi voimme myös löytää sen lisätty "–emit-relocs" -vaihtoehto mahdollistaaksesi osoitteensiirtoosien kopioinnin syöttötiedostoista lopullisiin tiedostoihin lisäoptimointia varten, jota voidaan soveltaa linkin jälkeisessä vaiheessa.

Muista erottuvista muutoksista:

  • Lisätty vaihtoehto “–shuffle-sections” satunnaistaaksesi osien järjestyksen ennen niiden osoitteiden kiinnittämistä virtuaaliseen osoiteavaruuteen.
  • Lisätty “–warn-once” ja “–warn-textrel” vaihtoehdot.
  • Riippuvuus libxxhashista poistettu.

Vihdoin jos olet kiinnostunut tietämään siitä lisää, voit tarkistaa yksityiskohdat seuraava linkki.

Kuinka asentaa muotti?

Niille, jotka ovat kiinnostuneita työskentelemään Moldin kanssa, he voivat hankkia apuohjelman lataamalla ja kääntämällä lähdekoodin. Voit tehdä tämän avaamalla terminaalin ja kirjoittamalla seuraavan:

git clone https://github.com/rui314/mold.git
cd mold
git checkout v1.1.1
make -j$(nproc) CXX=clang++
sudo make install

Mouldin käytön tuntemiseksi voit tutustua asiakirjoihin tässä linkissä.


Jätä kommentti

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *

*

*

  1. Vastuussa tiedoista: Miguel Ángel Gatón
  2. Tietojen tarkoitus: Roskapostin hallinta, kommenttien hallinta.
  3. Laillistaminen: Suostumuksesi
  4. Tietojen välittäminen: Tietoja ei luovuteta kolmansille osapuolille muutoin kuin lain nojalla.
  5. Tietojen varastointi: Occentus Networks (EU) isännöi tietokantaa
  6. Oikeudet: Voit milloin tahansa rajoittaa, palauttaa ja poistaa tietojasi.