LTO: çfarë është dhe si ta përdorësh atë në Gentoo

Çfarë është LTO?

LTO është shkurtesa për Optimizimi i kohës së lidhjes. Shtë një operacion në të cilin përpiluesi vonon optimizimet në momentin e lidhjes së skedarëve burim, duke ju lejuar të shihni të gjitha skedarët që përbëjnë një ekzekutues të vetëm si një skedar të vetëm, dhe në këtë mënyrë të aplikoni optimizimet në një mënyrë më efektive.

Për më shumë informacion: wiki i GCC.

Për të parë përfitimet dhe të metat e LTO: Standardet e Phoronix

Gjërat për tu mbajtur në mendje

  • Unshtë e paqëndrueshme, mund të shkaktojë probleme në disa pako.
  • Disa paketa nuk do të përpilohen (më shumë se si ta rregulloni këtë më vonë).
  • Rekomandohet të përdorni lidhësin Gold.
  • Përdorim gjithmonë versioni i fundit i GCC.

Gold, përveç mbështetjes së veçorive të përparuara që e bëjnë atë më tërheqës për t'u përdorur LTO, është më shpejt se gnu ld, sidomos kur bëhet fjalë për programe të mëdha, ku mund të bëhen 5 herë më shpejt. Për ta përdorur, ekzekuto:

binutils-config --linker ld.gold


Përdorimi i LTO: metoda e rekomanduar

Në vend të aktivizimit LTO globalisht (gjë që mund të shkaktojë probleme) është më mirë ta aktivizoni në paketat që duam. Në këtë mënyrë, vetëm paketat nga të cilat dëshironi të përfitoni LTO ato përpilohen me këtë optimizim, ose që shmang kohën më të ngadaltë të përpilimit në programet që nuk përfitojnë prej tij. Kjo mund të arrihet në mënyrën vijuese:

Në drejtorinë / etc / portage / env, ne krijojmë skedarin LTO.konf dhe shtojmë linjat vijuese:

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.

Pra, për të përdorur LTO në një paketë, ne thjesht duhet të vendosim emrin e tij (emri i plotë, www-klient / firefox, në vend të firefox) pako.env, së bashku me LTO.konf në të djathtën tuaj. Më poshtë është një shembull:

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

Tani ne thjesht duhet të përpilojmë paketat që duam të përdorin LTO.


Përdorimi i LTO globalisht (nuk rekomandohet)

Në vend që të aplikoni LTO pako pas pakete, ne gjithashtu mund ta zbatojmë atë globalisht (që është ajo që unë përdor). Për ta zbatuar atë, hapat që duhet të ndiqni janë:

Ne editojmë skedarin /etc/portage/make.conf dhe shtojmë sa vijon (ato janë të njëjtat rreshta nga skedari LTO.konf):

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.

Nga ana tjetër, ne krijojmë skedarin /etc/portage/env/no-LTO.conf dhe shtojmë linjat e mëposhtme:

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

Dhe në dosje pako.env ne do të vendosim paketat, përpilimi i të cilave dështon LTO. Ai këtu ime pako.env (vini re që unë përdor nolto.konf në vend të jo-LTO.konf).

Ne gjithashtu duhet të shtojmë LTO për të P variableRDORUR variablin e bëj.konf, kjo është e nevojshme sepse zhvilluesit e Gentoo ato (ngadalë) shtojnë arna opsionale për përdorimin e këtij optimizimi në disa paketa.

Pasi të jetë bërë kjo, le të vazhdojmë të rikompilojmë të gjitha paketat e sistemit:

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

Duke përdorur –mbajtje, po themi mbartje për të injoruar gabimet, ndërsa &> ridrejtoni prodhimin e të gjitha gabimeve në një skedar të quajtur gabime, përdorni këtë skedar për të parë se cilat paketa nuk arrijnë të përpilohen dhe shtoni ato në listën e pako.env.

&> Do të na privojë nga të gjitha daljet, nëse duam të shohim rezultatet e procesit, duhet të përdorim (si rrënjë) këtë komandë:

tail -f /var/log/emerge.log

Dhe kjo është e gjitha, shpresoj të mos kem lënë asnjë dyshim, nëse do të gëzohem dhe do të shkruaj një artikull Openmp dhe / ose grafit.


Lini komentin tuaj

Adresa juaj e emailit nuk do të publikohet. Fusha e kërkuar janë shënuar me *

*

*

  1. Përgjegjës për të dhënat: Miguel Ángel Gatón
  2. Qëllimi i të dhënave: Kontrolloni SPAM, menaxhimin e komenteve.
  3. Legjitimimi: Pëlqimi juaj
  4. Komunikimi i të dhënave: Të dhënat nuk do t'u komunikohen palëve të treta përveç me detyrim ligjor.
  5. Ruajtja e të dhënave: Baza e të dhënave e organizuar nga Occentus Networks (BE)
  6. Të drejtat: Në çdo kohë mund të kufizoni, rikuperoni dhe fshini informacionin tuaj.

  1.   MSX dijo

    Gentoo, meh ...
    Le të shkojmë te gjëja e rëndësishme: Grafit!

    1.    x11tete11x dijo

      Graphite budalla dhe ssensuale xD, ajo gjë nën normale që shpërthen në sistemin tuaj xD, mbaj mend që herën e fundit që e përdora, ishte e mjaftueshme për të bërë një for që përsëritet 50 herë duke bërë "njoftoni-dërgoni KDE <3" në mënyrë që në përsëritje numri 50, ambienti do te shperthehet ne dreq hahahahaha, po, po shkoja ne pordhet e reja xD

    2.    udhëtar dijo

      Unë tashmë thashë se unë isha ende i inkurajuar dhe e bëra një Graphite. Sidoqoftë, Graphite (dhe çdo optimizëm tjetër) funksionon më mirë me LTO. Gjithashtu, ndryshe nga LTO, Graphite dhe OpenMP kanë një problem. Jo të gjithë programet përfitojnë prej tij, dhe në ato që nuk përfitojnë, performanca zvogëlohet, kështu që në këtë rast është më mirë ta përdorni atë vetëm për disa paketa.