LTO: chii uye kuti ungashandise sei paGentoo

Chii chinonzi LTO?

LTO ndicho chidimbu che Batanidza Nguva Kugadzirisa. Iko mashandiro ekuti compiler inononoka optimization panguva yekubatanidza mafaera sosi, ichikubvumidza iwe kuti uone mafaera ese anoumba imwechete inoitiswa sefaira rimwe chete, uye nenzira iyi shandisa optimizations mune inoshanda nzira.

Kuti uwane rumwe ruzivo: iyo wiki ye GCC.

Kuti uone zvakanakira uye zvinokanganisa zve LTO: Zviratidzo zve Phoronix

Zvinhu zvekuchengetedza mupfungwa

  • Iyo haina kugadzikana, inogona kukonzera matambudziko mune mamwe mapakeji.
  • Mamwe mapakeji anokundikana kuumbika (zvimwe pamusoro pekugadzirisa izvi gare gare).
  • Inokurudzirwa kushandisa iyo yekubatanidza goridhe.
  • Zvishandiso nguva dzose yazvino vhezheni ye GCC.

goridhe, mukuwedzera pakutsigira epamberi maficha ayo anoita kuti ive inokwezva kushandisa LTO, inokurumidza kupfuura gnu ld, kunyanya kana zvasvika kuzvirongwa zvakakura, kwainogona kuve 5 times nekukurumidza. Kuti uishandise, mhanya:

binutils-config --linker ld.gold


Uchishandisa LTO: yakakurudzirwa nzira

Panzvimbo pekumisikidza LTO pasirese (izvo zvinogona kukonzeresa matambudziko) zvirinani kuzviita mumapakeji atinoda. Nenzira iyi, mapakeji chete aunoda kubatsirwa nawo LTO iwo akarongedzwa neiyi optimization, kana iyo inodzivirira inononoka nguva yekuunganidza muzvirongwa zvisingabatsirwe nazvo. Izvi zvinogona kuwanikwa nenzira inotevera:

Mune iyo / etc / portage / env dhairekitori, tinogadzira iyo faira LTO.conf uye tinowedzera mitsara inotevera:

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.

Saka, kushandisa LTO mupakeji, isu tinongofanirwa kuisa zita rayo (izere zita, www-mutengi / firefox, pachinzvimbo che firefox) mufaira package.env, Na LTO.conf kurudyi kwako. Pazasi pane muenzaniso:

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

Iye zvino isu tinongofanirwa kuunganidza mapakeji atinoda kuti vashandise LTO.


Uchishandisa LTO pasi rose (haina kukurudzirwa)

Panzvimbo pekushandisa LTO package nepakeji, tinogona zvakare kuishandisa pasi rose (zvinova ndizvo zvandinoshandisa). Kuti uishandise, matanho ekutevera ndeaya:

Isu tinogadzirisa iyo faira /etc/portage/make.conf uye wedzera zvinotevera (iwo akafanana mitsara yefaira 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.

Nekudaro, isu tinogadzira iyo faira /etc/portage/env/no-LTO.conf uye wedzera mitsara inotevera:

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

Uye mune iyo faira package.env isu tichaisa mapakeji ane muunganidzwa anokundikana nawo LTO. Iye pano zvangu package.env (ona kuti ini ndinoshandisa nolto.conf panzvimbo pe kwete-LTO.conf).

Tinofanira zvakare kuwedzera LTO KUSHANDISA kusiyanisa kwe make.conf, izvi zvinodikanwa nekuti ivo vanogadzira Gentoo ivo vari (zvishoma nezvishoma) vanowedzera zvakasarudzika zvigamba zvekushandisa kweiyi optimization mune mamwe mapakeji.

Kana izvi zvangoitwa, ngatiendererei mberi kurongedza ese system mapakeji:

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

Nekushandisa -kuchengetedza-kuenda, isu tiri kuudza Portage kufuratira zvikanganiso, nepo &> redirectra kuburitsa kwese mabugs kune iyo faira inonzi zvikanganiso, shandisa iyi faira kuti uone kuti ndeapi mapakeji anotadza kuumbiridza uye wobva wawedzera iwo kune package.env.

Iyo &> ichatinyima isu zvese zvinobuda, kana tichida kuona kuburitsa kwemaitiro, isu tinofanirwa kushandisa (semudzi) uyu murairo:

tail -f /var/log/emerge.log

Uye ndizvozvo chete, ndinotarisira kuti handina kusiya kusahadzika, kana izvozvo ndichifara uye kunyora chinyorwa nezve Vhura uye / kana Graphite.


Siya yako yekutaura

Your kero e havazobvumirwi ichibudiswa. Raida minda anozivikanwa ne *

*

*

  1. Inotarisira iyo data: Miguel Ángel Gatón
  2. Chinangwa cheiyo data: Kudzora SPAM, manejimendi manejimendi.
  3. Legitimation: Kubvuma kwako
  4. Kutaurirana kwedata
  5. Dhata yekuchengetedza: Dhatabhesi inobatwa neOccentus Networks (EU)
  6. Kodzero: Panguva ipi neipi iwe unogona kudzora, kupora uye kudzima ruzivo rwako

  1.   msx akadaro

    Gentoo, meh ...
    Ngatiendei kuchinhu chakakosha: Graphite!

    1.    x11tete11x akadaro

      Iyo yakapusa uye ssensual Graphite xD, icho chinhu chisina kujairika chinopaza yako xD system, ini ndinorangarira kuti kekupedzisira nguva yandakazvishandisa, zvaive zvakakwana kuita iyo iyo iterates makumi mashanu kuita "notify-send KDE <50" so that in iteration nhamba makumi mashanu, nharaunda ichaputika kuenda kugehena hahahahaha, ehe, ini ndanga ndichienda kune zvakare-farts xD

    2.    mugwagwa akadaro

      Ini ndanga ndati ndanga ndichikurudzirwa uye ndakaita imwe yeGrafite. Asi zvakadaro, Graphite (uye chero imwe optimization) inoshanda zvakanyanya neLTO. Zvakare, kusiyana neLTO, Graphite uye OpenMP vane dambudziko. Haasi ese mapurogiramu anobatsirwa nazvo, uye mune izvo zvisingabatsire, mashandiro anoderera, saka mune iyi kesi zviri nani kuishandisa chete kune mashoma mapakeji