Шта је ЛТО?
ЛТО је акроним за Линк Оптимизатион. То је операција у којој компајлер одлаже оптимизације у тренутку повезивања изворних датотека, омогућавајући вам да видите све датотеке које чине једну извршну датотеку као једну датотеку и на тај начин примените оптимизације на ефикаснији начин.
Да бисте видели предности и недостатке ЛТО: Референтне вредности за Пхороник
Ствари које треба имати на уму
- Нестабилан је, може изазвати проблеме у неким пакетима.
- Неки пакети неће успети да се компајлирају (више о томе како то исправити касније).
- Препоручљиво је користити линкер злато.
- Коришћење увек најновија верзија ГЦЦ.
злато, поред подршке напредним функцијама које га чине привлачнијим за употребу ЛТО, брже је од ГНУ лд, посебно када су у питању велики програми, где то могу постати 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
И то је све, надам се да нисам оставио никакве сумње, ако ћу о томе развеселити и написати чланак о томе ОпенМП и / или графит.
Гентоо, ја ...
Идемо на важну ствар: Графит!
Глупи и сензуални Грапхите кД, та ненормална ствар која пуца на вашем кД систему, сећам се да је последњи пут када сам га користио, било довољно да се за то понавља 50 пута радећи „нотифи-сенд КДЕ <3“ тако да у итерацији број 50, животна средина ће пукнути дођавола хахахахаха, да, ишао сам на поновни прд кД
Већ сам рекао да сам и даље охрабрен и направио један од Грапхите-а. Али у сваком случају, Грапхите (и било која друга оптимизација) најбоље функционише са ЛТО. Такође, за разлику од ЛТО, Грапхите и ОпенМП имају проблема. Немају сви програми користи од тога, а код оних који немају користи, перформансе се смањују, па је у овом случају боље користити га само за неколико пакета.