LTO: mikä se on ja miten sitä käytetään Gentoon

Mikä on LTO?

LTO on lyhenne sanoista Linkin ajan optimointi. Se on toimenpide, jossa kääntäjä viivästyttää optimointia lähdetiedostojen linkittämisen yhteydessä, jolloin voit nähdä kaikki yksittäisen suoritettavan tiedoston muodostavat tiedostot yhtenä tiedostona ja soveltaa tällä tavalla optimointeja tehokkaammin.

Lisätietoja: Wiki GCC.

Nähdäksesi edut ja haitat LTO: Vertailuarvot Phoronix

Asiat pitää mielessä

  • Se on epävakaa, se voi aiheuttaa ongelmia joissakin paketeissa.
  • Jotkut paketit eivät onnistu kääntämään (lisätietoja tämän korjaamisesta myöhemmin).
  • On suositeltavaa käyttää linkkiä Kulta.
  • Yhdysvallat aina uusin versio GCC.

KultaSen lisäksi, että se tukee edistyneitä ominaisuuksia, jotka tekevät siitä houkuttelevamman käyttää LTO, se on nopeampi kuin gnu ld, varsinkin kun on kyse suurista ohjelmista, joissa siitä voi tulla 5 kertaa nopeammin. Käytä sitä suorittamalla:

binutils-config --linker ld.gold


LTO: n käyttö: suositeltu menetelmä

Aktivoinnin sijasta LTO globaalisti (mikä voi aiheuttaa ongelmia) on parempi aktivoida se haluamissamme paketeissa. Tällä tavalla vain paketit, joista haluat hyötyä LTO ne on koottu tällä optimoinnilla tai joka välttää hitaammat kokoamisajat ohjelmissa, jotka eivät hyöty siitä. Tämä voidaan saavuttaa seuraavasti:

Luomme tiedoston hakemistoon / etc / portage / env LTO.conf ja lisäämme seuraavat rivit:

CFLAGS="${CFLAGS} -flto=5" #pon en -flto los hilos  de tu CPU + 1
CXXFLAGS="${CXXFLAGS} -flto=5" #igual que arriba
LDFLAGS="${LDFLAGS} -fuse-linker-plugin" #solo si usas Gold, es mejor.

Joten, käyttää LTO paketissa meidän on vain lisättävä sen nimi (koko nimi, www-client / firefox firefoxin sijaan) tiedostoon paketti.env, yhdessä LTO.conf oikealla puolellasi. Alla on esimerkki:

app-emulation/wine LTO.conf
www-client/firefox LTO.conf
sys-devel/gcc LTO.conf
kde-base/kdelibs LTO.conf

Nyt meidän on vain koottava paketit, jotka haluamme heidän käyttävän LTO.


LTO: n käyttö maailmanlaajuisesti (ei suositella)

Hakemisen sijaan LTO Pakettikohtaisesti voimme soveltaa sitä myös maailmanlaajuisesti (mitä käytän). Sen soveltamiseksi seuraavat vaiheet ovat:

Muokataan tiedostoa /etc/portage/make.conf ja lisätään seuraava (ne ovat samoja tiedoston rivejä LTO.conf):

CFLAGS="${CFLAGS} -flto=5" #pon en -flto los hilos  de tu CPU + 1
CXXFLAGS="${CXXFLAGS} -flto=5" #igual que arriba
LDFLAGS="${LDFLAGS} -fuse-linker-plugin" #solo si usas Gold, es mejor.

Luo puolestaan ​​tiedosto /etc/portage/env/no-LTO.conf ja lisäät seuraavat rivit:

CFLAGS="${CFLAGS} -fno-lto -fno-use-linker-plugin"
CXXFLAGS="${CXXFLAGS} -fno-lto -fno-use-linker-plugin"
LDFLAGS="${LDFLAGS} -fno-lto -fno-use-linker-plugin"

Ja tiedostossa paketti.env laitamme paketit, joiden kääntäminen epäonnistuu LTO. Hän täällä minun paketti.env (huomaa, että käytän nolto.conf sijaan ei-LTO.conf).

Meidän on myös lisättävä LTO to USE muuttuja make.conf, tämä on välttämätöntä, koska Gentoo he lisäävät (hitaasti) valinnaisia ​​korjaustiedostoja tämän optimoinnin käyttöä varten joissakin paketeissa.

Kun tämä on tehty, käännetään kaikki järjestelmäkokonaisuudet uudelleen:

emerge -e @world @system --keep-going &> errores

Käyttämällä –pitoprosessia me kerromme portage sivuuttaa virheet, kun &> ohjaa kaikkien virheiden ulostulo tiedostoon nimeltä virheitä, käytä tätä tiedostoa nähdäksesi mitkä paketit eivät pysty kääntämään paketti.env.

&> Vie meiltä kaiken tuotoksen, jos haluamme nähdä prosessin tuotoksen, meidän on käytettävä (pääkäyttäjänä) tätä komentoa:

tail -f /var/log/emerge.log

Ja siinä kaikki, toivottavasti en ole jättänyt epäilyksiä, jos siitä piristän ja kirjoitan artikkelin Openmp ja / tai grafiitti.


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.

  1.   MSX dijo

    Gentoo, meh ...
    Mennään tärkeään asiaan: grafiitti!

    1.    x11tete11x dijo

      Tyhmä ja ssensual-grafiitti xD, se epänormaali asia, joka räjähti xD-järjestelmäsi, muistan, että kun viimeksi käytin sitä, riitti tekemään a, joka toistaa 50 kertaa tekemällä "ilmoita-lähetä KDE <3" niin, että iteraationumerossa 50 , ympäristö räjähtää helvettiin hahahahaha, kyllä, aioin re-farts xD

    2.    tienkuljettaja dijo

      Sanoin jo, että minua edelleen kannustettiin ja tein yhden grafiitista. Mutta joka tapauksessa, Graphite (ja mikä tahansa muu optimointi) toimii parhaiten LTO: n kanssa. Toisin kuin LTO, grafiitilla ja OpenMP: llä on ongelma. Kaikki ohjelmat eivät hyöty siitä, ja niissä, jotka eivät hyöty siitä, suorituskyky heikkenee, joten tässä tapauksessa on parempi käyttää sitä vain muutamaan pakettiin.