LTO: kaj je to in kako ga uporabljati na Gentoo

Kaj je LTO?

LTO je kratica za Povezava za optimizacijo časa. Gre za operacijo, pri kateri prevajalnik zadrži optimizacije v trenutku povezovanja izvornih datotek, tako da si lahko ogledate vse datoteke, ki sestavljajo posamezno izvedljivo datoteko, in na ta način optimizacije uporabite na učinkovitejši način.

Za več informacij: wiki GCC.

Če si želite ogledati prednosti in slabosti LTO: Merila uspešnosti Phoronix

Stvari, ki jih morate upoštevati

  • Je nestabilen, v nekaterih paketih lahko povzroči težave.
  • Nekaterih paketov ne bo uspelo zbrati (več o tem, kako to popraviti kasneje).
  • Priporočljivo je, da uporabite povezovalnik Gold.
  • Usa vedno najnovejša različica GCC.

Gold, poleg tega, da podpira napredne funkcije, zaradi katerih je privlačnejša za uporabo LTO, je hitrejši od gnu ld, še posebej, ko gre za velike programe, kjer to lahko postane 5-krat hitreje. Če ga želite uporabiti, zaženite:

binutils-config --linker ld.gold


Uporaba LTO: priporočena metoda

Namesto da se aktivira LTO globalno (kar lahko povzroča težave) je bolje, da ga aktiviramo v želenih paketih. Na ta način samo paketi, od katerih želite izkoristiti LTO sestavljeni so s to optimizacijo ali s čimer se izognemo počasnejšemu času prevajanja v programih, ki od tega nimajo koristi. To lahko dosežemo na naslednji način:

V imeniku / etc / portage / env ustvarimo datoteko LTO.conf in dodamo naslednje vrstice:

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.

Torej, za uporabo LTO v paketu moramo v datoteko vstaviti samo njegovo ime (polno ime, www-client / firefox, namesto firefox) paket.env, skupaj z LTO.conf na vaši desni. Spodaj je primer:

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

Zdaj moramo samo zbrati pakete, za katere želimo, da jih uporabljajo LTO.


Globalna uporaba LTO (ni priporočljivo)

Namesto prijave LTO paket za paketom, lahko ga uporabimo tudi globalno (kar uporabljam). Če ga želite uporabiti, sledite naslednjim korakom:

Uredimo datoteko /etc/portage/make.conf in dodamo naslednje (gre za iste vrstice datoteke 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.

Po drugi strani ustvarimo datoteko /etc/portage/env/no-LTO.conf in dodamo naslednje vrstice:

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

In v datoteki paket.env dali bomo pakete, pri katerih sestavljanje ne uspe LTO. On tukaj moj paket.env (upoštevajte, da uporabljam nolto.conf namesto ne-LTO.conf).

Moramo tudi dodati LTO za UPORABO spremenljivka make.conf, je to potrebno, ker so razvijalci Gentoo v nekatere pakete (počasi) dodajajo neobvezne popravke za uporabo te optimizacije.

Ko je to končano, nadaljujmo s ponovnim prevajanjem vseh sistemskih paketov:

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

Z uporabo ohranimo, povemo Portage da prezre napake, medtem ko &> preusmerite izhod vseh napak v datoteko, imenovano napake, s to datoteko si oglejte, kateri paketi ne uspejo zbrati, in jih dodajte na paket.env.

&> Nam bo odvzel ves izhod, če želimo videti izhod procesa, moramo uporabiti (kot root) ta ukaz:

tail -f /var/log/emerge.log

In to je vse, upam, da nisem pustil nobenega dvoma, če bom to razveselil in napisal članek o tem Openmp in / ali grafit.


Pustite svoj komentar

Vaš e-naslov ne bo objavljen. Obvezna polja so označena z *

*

*

  1. Za podatke odgovoren: Miguel Ángel Gatón
  2. Namen podatkov: Nadzor neželene pošte, upravljanje komentarjev.
  3. Legitimacija: Vaše soglasje
  4. Sporočanje podatkov: Podatki se ne bodo posredovali tretjim osebam, razen po zakonski obveznosti.
  5. Shranjevanje podatkov: Zbirka podatkov, ki jo gosti Occentus Networks (EU)
  6. Pravice: Kadar koli lahko omejite, obnovite in izbrišete svoje podatke.

  1.   MSX je dejal

    Gentoo, meh ...
    Pojdimo k pomembni stvari: grafit!

    1.    x11tete11x je dejal

      Neumni in senzualni Graphite xD, tista nenormalna stvar, ki poči vaš xD sistem, se spominjam, da je bilo zadnjič, ko sem ga uporabil, dovolj, da 50-krat ponovim, da naredim "notify-send KDE <3", tako da v iteraciji številka 50, okolje bo počilo do vraga hahahahaha, ja, šel sem k prdcem xD

    2.    cestnik je dejal

      Sem že rekel, da me še vedno spodbujajo in so ga naredili iz Graphita. A vseeno Graphite (in katera koli druga optimizacija) najbolje deluje z LTO. Za razliko od LTO imajo Graphite in OpenMP težave. Vsi programi od tega nimajo koristi, pri tistih, ki pa od tega, pa se zmogljivost zmanjša, zato je v tem primeru bolje, da ga uporabite le za nekaj paketov.