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.
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.
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.
Gentoo, meh ...
Mennään tärkeään asiaan: grafiitti!
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
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.