ЛТО: шта је то и како га користити на Гентоо-у

Шта је ЛТО?

ЛТО је акроним за Линк Оптимизатион. То је операција у којој компајлер одлаже оптимизације у тренутку повезивања изворних датотека, омогућавајући вам да видите све датотеке које чине једну извршну датотеку као једну датотеку и на тај начин примените оптимизације на ефикаснији начин.

За више информација: вики оф ГЦЦ.

Да бисте видели предности и недостатке ЛТО: Референтне вредности за Пхороник

Ствари које треба имати на уму

  • Нестабилан је, може изазвати проблеме у неким пакетима.
  • Неки пакети неће успети да се компајлирају (више о томе како то исправити касније).
  • Препоручљиво је користити линкер злато.
  • Коришћење увек најновија верзија ГЦЦ.

злато, поред подршке напредним функцијама које га чине привлачнијим за употребу ЛТО, брже је од ГНУ лд, посебно када су у питању велики програми, где то могу постати 5 пута брже. Да бисте га користили, покрените:

binutils-config --linker ld.gold


Коришћење ЛТО: препоручена метода

Уместо да се активира ЛТО глобално (што може створити проблеме) боље је активирати га у пакетима које желимо. На овај начин само пакети од којих желите да имате користи ЛТО компајлирају се са овом оптимизацијом или чиме се избегава спорије време компајлирања у програмима који од тога немају користи. То се може постићи на следећи начин:

У директоријуму / етц / портаге / енв креирамо датотеку ЛТО.цонф и додајемо следеће редове:

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.

Дакле, да користим ЛТО у пакету, морамо само да ставимо његово име (пуно име, ввв-цлиент / фирефок, уместо фирефок) у датотеку пакет.енвзаједно са ЛТО.цонф с ваше десне стране. Испод је пример:

app-emulation/wine LTO.conf
www-client/firefox LTO.conf
sys-devel/gcc LTO.conf
kde-base/kdelibs 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.

Заузврат креирамо датотеку /етц/портаге/енв/но-ЛТО.цонф и додамо следеће редове:

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

И у досијеу пакет.енв ставићемо пакете чија компилација не успе ЛТО. Он ево мој пакет.енв (напомена коју користим нолто.цонф уместо но-ЛТО.цонф).

Морамо такође додати ЛТО то УСЕ променљива од маке.цонф, ово је неопходно јер програмери Гентоо они (полако) додају опционалне закрпе за употребу ове оптимизације у неким пакетима.

Када се ово заврши, кренимо са поновним превођењем свих системских пакета:

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

Користећи –кееп-гоинг, кажемо Портаге да игнорише грешке, док &> преусмерите излаз свих грешака у датотеку која се назива грешке, користите ову датотеку да бисте видели који пакети не успевају да се компајлирају и додајте их на листу пакет.енв.

&> Лишиће нас свих резултата, ако желимо да видимо излаз процеса, морамо користити (као роот) ову наредбу:

tail -f /var/log/emerge.log

И то је све, надам се да нисам оставио никакве сумње, ако ћу о томе развеселити и написати чланак о томе ОпенМП и / или графит.


Оставите свој коментар

Ваша емаил адреса неће бити објављена. Обавезна поља су означена са *

*

*

  1. За податке одговоран: Мигуел Ангел Гатон
  2. Сврха података: Контрола нежељене поште, управљање коментарима.
  3. Легитимација: Ваш пристанак
  4. Комуникација података: Подаци се неће преносити трећим лицима, осим по законској обавези.
  5. Похрана података: База података коју хостује Оццентус Нетворкс (ЕУ)
  6. Права: У било ком тренутку можете ограничити, опоравити и избрисати своје податке.

  1.   МСКС дијо

    Гентоо, ја ...
    Идемо на важну ствар: Графит!

    1.    к11тете11к дијо

      Глупи и сензуални Грапхите кД, та ненормална ствар која пуца на вашем кД систему, сећам се да је последњи пут када сам га користио, било довољно да се за то понавља 50 пута радећи „нотифи-сенд КДЕ <3“ тако да у итерацији број 50, животна средина ће пукнути дођавола хахахахаха, да, ишао сам на поновни прд кД

    2.    друм дијо

      Већ сам рекао да сам и даље охрабрен и направио један од Грапхите-а. Али у сваком случају, Грапхите (и било која друга оптимизација) најбоље функционише са ЛТО. Такође, за разлику од ЛТО, Грапхите и ОпенМП имају проблема. Немају сви програми користи од тога, а код оних који немају користи, перформансе се смањују, па је у овом случају боље користити га само за неколико пакета.