KT: kas tai yra ir kaip juo naudotis „Gentoo“

Kas yra KOP?

LTO yra akronimas Nuorodos laiko optimizavimas. Tai operacija, kurios metu kompiliatorius atideda optimizavimą susiedamas šaltinio failus, leidžiantį pamatyti visus failus, sudarančius vieną vykdomąjį failą, kaip vieną failą, ir tokiu būdu efektyviau pritaikyti optimizavimą.

Daugiau informacijos: „wiki“ GCC.

Norėdami sužinoti apie naudą ir trūkumus LTO: Gairės Phoronix

Reikėtų nepamiršti dalykų

  • Tai nestabili, kai kuriuose paketuose gali kilti problemų.
  • Kai kurių paketų nepavyks kompiliuoti (daugiau apie tai išsiaiškinti vėliau).
  • Rekomenduojama naudoti nuorodą Auksas.
  • JAV visada naujausią versiją GCC.

Auksas, be to, kad palaiko pažangias funkcijas, kurios daro jį patrauklesnį naudoti LTO, tai greičiau nei gnu ld, ypač kai kalbama apie dideles programas, kur tai gali tapti 5 kartus greičiau. Norėdami jį naudoti, paleiskite:

binutils-config --linker ld.gold


Naudojant LTO: rekomenduojamas metodas

Užuot aktyvavęs LTO visame pasaulyje (o tai gali sukelti problemų) geriau jį suaktyvinti norimuose paketuose. Tokiu būdu naudosite tik tuos paketus, iš kurių norite pasinaudoti LTO jie sudaromi naudojant šią optimizaciją arba išvengiant lėtesnio kompiliavimo laiko programose, kurioms tai nėra naudinga. Tai galima pasiekti tokiu būdu:

/ Etc / portage / env kataloge kuriame failą LTO.conf ir pridedame šias eilutes:

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.

Taigi, naudoti LTO pakuotėje, mes tiesiog turime įrašyti jo vardą (visą vardą, www-client / firefox, o ne firefox) į failą paketas.env, Su LTO.conf į dešinę. Žemiau pateikiamas pavyzdys:

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

Dabar mes tiesiog turime surinkti paketus, kuriuos norime, kad jie naudotų LTO.


LTO naudojimas visame pasaulyje (nerekomenduojama)

Užuot kreipęsis LTO paketas po paketo, mes taip pat galime jį pritaikyti visame pasaulyje (ką aš naudoju). Norėdami jį pritaikyti, atlikite šiuos veiksmus:

Redaguojame failą /etc/portage/make.conf ir įtraukiame šiuos duomenis (tai yra tos pačios failo eilutės 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.

Savo ruožtu mes sukuriame failą /etc/portage/env/no-LTO.conf ir įtraukiame šias eilutes:

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

Ir byloje paketas.env įdėsime paketus, kurių kompiliacija nepavyksta LTO. Jis čia mano paketas.env (atkreipkite dėmesį, kad aš naudoju nolto.conf vietoj ne-LTO.conf).

Taip pat turime pridurti LTO to USE kintamasis padaryti.conf, tai yra būtina, nes "Gentoo" jie (lėtai) prideda pasirinktinius pleistrus, skirtus naudoti šį optimizavimą kai kuriuose paketuose.

Kai tai bus padaryta, pradėkime iš naujo sukompiliuoti visus sistemos paketus:

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

Naudodami –laikymą, mes sakome „Portage“ nepaisyti klaidų, o &> peradresuokite visų klaidų išvestį į failą, vadinamą klaidomis, naudokite šį failą norėdami sužinoti, kurių paketų nepavyksta sukompiliuoti, ir įtraukite juos į paketas.env.

&> Atims iš mūsų visas išvestis, jei norime pamatyti proceso išvestį, turime naudoti (kaip šakninę) šią komandą:

tail -f /var/log/emerge.log

Ir viskas, tikiuosi, kad nepalikau abejonių, jei tai nudžiuginsiu ir parašysiu straipsnį „OpenMP“ ir / arba grafitas.


Palikite komentarą

Jūsų elektroninio pašto adresas nebus skelbiamas. Privalomi laukai yra pažymėti *

*

*

  1. Atsakingas už duomenis: Miguel Ángel Gatón
  2. Duomenų paskirtis: kontroliuoti šlamštą, komentarų valdymą.
  3. Įteisinimas: jūsų sutikimas
  4. Duomenų perdavimas: Duomenys nebus perduoti trečiosioms šalims, išskyrus teisinius įsipareigojimus.
  5. Duomenų saugojimas: „Occentus Networks“ (ES) talpinama duomenų bazė
  6. Teisės: bet kuriuo metu galite apriboti, atkurti ir ištrinti savo informaciją.

  1.   MSX sakė

    Gentoo, meh ...
    Pereikime prie svarbaus dalyko: grafito!

    1.    x11tete11x sakė

      Kvailas ir nesuvokiamas „Graphite xD“, tas nenormalus dalykas, kuris sprogo jūsų xD sistemą, prisimenu, kad paskutinį kartą, kai jį naudojau, pakako padaryti, kad pakartotumėte 50 kartų, atlikdami „pranešti-siųsti KDE <3“, kad kartojant numeris 50, aplinka sprogs pragare hahahahaha, taip, aš ėjau į fartus xD

    2.    kelininkas sakė

      Aš jau sakiau, kad vis tiek buvau padrąsintas ir padariau vieną iš „Graphite“. Bet šiaip „Graphite“ (ir bet koks kitas optimizavimas) geriausiai veikia su LTO. Be to, skirtingai nei LTO, „Graphite“ ir „OpenMP“ turi problemų. Ne visoms programoms tai naudinga, o toms, kurioms tai nėra naudinga, našumas sumažėja, todėl šiuo atveju geriau naudoti tik keliems paketams.