LTO: kas tas ir un kā to izmantot Gentoo

Kas ir LTO?

LTO ir saīsinājums Saites laika optimizācija. Tā ir operācija, kurā kompilators aizkavē optimizāciju avota failu sasaistīšanas brīdī, ļaujot redzēt visus failus, kas veido vienu izpildāmo failu, kā vienu failu, un tādā veidā efektīvāk pielietot optimizācijas.

Lai iegūtu vairāk informācijas: wiki no GCC.

Lai redzētu priekšrocības un trūkumus LTO: Etaloni Phoronix

Lietas, kas jāpatur prātā

  • Tas ir nestabils, dažos iepakojumos tas var radīt problēmas.
  • Dažas paketes neizdosies apkopot (vairāk par to, kā vēlāk to novērst).
  • Ieteicams izmantot saiti Zelts.
  • Izmantot vienmēr jaunākā versija GCC.

Zelts, papildus papildu funkciju atbalstam, kas padara to pievilcīgāku lietošanu LTO, tas ir ātrāk nekā gnu ld, it īpaši, ja runa ir par lielām programmām, kur tā var kļūt 5 reizes ātrāk. Lai to izmantotu, palaidiet:

binutils-config --linker ld.gold


Izmantojot LTO: ieteicamā metode

Tā vietā, lai aktivizētu LTO globāli (kas var radīt problēmas) labāk to aktivizēt vēlamajos iepakojumos. Tādā veidā tiek izmantotas tikai tās paketes, no kurām vēlaties gūt labumu LTO tie tiek sastādīti ar šo optimizāciju vai ļauj izvairīties no lēnāka sastādīšanas laika programmās, kuras no tā negūst labumu. To var panākt šādi:

/ Etc / portage / env direktorijā mēs izveidojam failu LTO.conf un mēs pievienojam šādas rindas:

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.

Tātad, lai izmantotu LTO paketē failā mums jāievieto tikai tā nosaukums (pilns nosaukums, www-client / firefox, nevis firefox). pakete.env, Ar LTO.conf jums pa labi. Zemāk ir sniegts piemērs:

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

Tagad mums vienkārši jāapkopo paketes, kuras mēs vēlamies, lai viņi izmanto LTO.


LTO izmantošana visā pasaulē (nav ieteicams)

Tā vietā, lai pieteiktos LTO pakete pa paketei, mēs to varam pielietot arī globāli (to es arī izmantoju). Lai to piemērotu, ir jāveic šādas darbības:

Mēs rediģējam failu /etc/portage/make.conf un pievienojam sekojošo (tās ir tās pašas faila rindas 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.

Savukārt mēs izveidojam failu /etc/portage/env/no-LTO.conf un pievienojam šādas rindas:

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

Un kartotēkā pakete.env mēs ieliksim paketes, kuru apkopošana neizdodas LTO. Viņš šeit mans pakete.env (ņemiet vērā, ka es izmantoju nolto.conf vietā nē-LTO.conf).

Mums arī jāpiebilst LTO to USE mainīgais no make.conf, tas ir nepieciešams, jo Gentoo viņi (lēnām) pievieno izvēles plāksterus šīs optimizācijas izmantošanai dažos paketēs.

Kad tas būs izdarīts, sāksim atkārtoti apkopot visas sistēmas paketes:

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

Izmantojot –turpināšanu, mēs sakām Portage lai ignorētu kļūdas, kamēr &> novirzīt visu kļūdu izvadi uz failu, ko sauc par kļūdām, izmantojiet šo failu, lai uzzinātu, kuras paketes neizdodas apkopot, un pievienojiet tos pakete.env.

&> Atņems mums visu produkciju, ja mēs vēlamies redzēt procesa iznākumu, mums jāizmanto (kā root) šī komanda:

tail -f /var/log/emerge.log

Un tas arī viss, es ceru, ka es neesmu atstājis šaubas, ja par to es uzmundrināšu un uzrakstīšu rakstu Atvērt un / vai grafīts.


Atstājiet savu komentāru

Jūsu e-pasta adrese netiks publicēta. Obligātie lauki ir atzīmēti ar *

*

*

  1. Atbildīgais par datiem: Migels Ángels Gatóns
  2. Datu mērķis: SPAM kontrole, komentāru pārvaldība.
  3. Legitimācija: jūsu piekrišana
  4. Datu paziņošana: Dati netiks paziņoti trešām personām, izņemot juridiskus pienākumus.
  5. Datu glabāšana: datu bāze, ko mitina Occentus Networks (ES)
  6. Tiesības: jebkurā laikā varat ierobežot, atjaunot un dzēst savu informāciju.

  1.   MSX teica

    Gentoo, meh ...
    Tiksim pie svarīgā: grafīta!

    1.    x11tete11x teica

      Stulbais un sensensual Graphite xD, tas ir nenormāls, kas pārrauj jūsu xD sistēmu, es atceros, ka pēdējo reizi, kad to izmantoju, bija pietiekami, lai izveidotu a, kas atkārtojas 50 reizes, veicot «paziņot-nosūtīt KDE <3», lai atkārtojumā 50 , vide izplīsīs ellē hahahahaha, jā, es devos uz re-farts xD

    2.    ceļinieks teica

      Es jau teicu, ka mani joprojām uzmundrināja un izveidoja vienu no Graphite. Bet jebkurā gadījumā Graphite (un jebkura cita optimizācija) vislabāk darbojas ar LTO. Tāpat, atšķirībā no LTO, Graphite un OpenMP ir problēma. Ne visas programmas no tā gūst labumu, un tajās, kurām tas negūst labumu, veiktspēja samazinās, tāpēc šajā gadījumā labāk to izmantot tikai dažām pakotnēm.