LTO: бул эмне жана аны Gentooдо кантип колдонуу керек

LTO деген эмне?

УМБ деген кыска сөз Убакытты оптималдаштыруу. Бул компилятор баштапкы файлдарды шилтеме кылган учурда оптимизацияны кечиктирип, бир аткарылуучу файлды түзгөн бардык файлдарды бир файл катары көрүүгө мүмкүндүк берген жана ушул жол менен оптимизацияны натыйжалуу ыкма менен колдонуучу операция.

Көбүрөөк маалымат алуу үчүн: вики GCC.

Анын артыкчылыктарын жана кемчиликтерин көрүү УМБ: Эталондор Phoronix

Эске алчу нерселер

  • Ал туруксуз, айрым пакеттерде көйгөйлөрдү жаратышы мүмкүн.
  • Айрым топтомдор топтолбой калат (муну кийинчерээк кантип оңдоо керек).
  • Шилтемени колдонуу сунушталат алтын.
  • колдонуу дайыма акыркы нускасы GCC.

алтын, Мындан тышкары, аны колдонууну жагымдуу кылган өркүндөтүлгөн функцияларды колдоо УМБ, караганда ылдамыраак GNU ldайрыкча, чоң программалар жөнүндө сөз болгондо, ал кайда болушу мүмкүн 5 эсе ылдамыраак. Аны колдонуу үчүн, чуркап өтүңүз:

binutils-config --linker ld.gold


LTO колдонуу: сунушталган ыкма

Жандыруунун ордуна УМБ глобалдык деңгээлде (көйгөй жаратышы мүмкүн), аны биз каалаган топтомдордо активдештиргенибиз оң. Ошентип, сиз гана пайда алып келген пакеттерди УМБ алар ушул оптимизация менен түзүлгөн же андан пайда таппаган программалардагы жай компиляция убактысын алдын алат. Буга төмөнкүдөй жол менен жетишүүгө болот:

/ Etc / portage / env каталогунда файлды түзөбүз 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.

Ошентип, колдонуу УМБ пакетте файлга анын атын гана (firefox ордуна толук аты-жөнү, www-client / firefox) жайгаштырышыбыз керек pack.env, Менен LTO.conf сиздин оң жагыңызда Төмөндө бир мисал келтирилген:

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

Эми биз колдонууну каалаган таңгактарды түзүшүбүз керек УМБ.


LTOну глобалдуу колдонуу (сунушталбайт)

Кайрылуунун ордуна УМБ таңгак менен, биз аны глобалдуу колдоно алабыз (мен колдонгон нерсе). Аны колдонуу үчүн төмөнкү кадамдар аткарылды:

/Etc/portage/make.conf файлын түзөтүп, төмөнкүлөрдү кошобуз (алар файлдын бирдей саптары 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.

Өз кезегинде, /etc/portage/env/no-LTO.conf файлын түзүп, төмөнкү саптарды кошобуз:

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

Жана файлда pack.env компиляциясы болбой калган таңгактарды коебуз УМБ. ал бул жерде менин pack.env (мен колдонгонума көңүл буруңуз nolto.conf ордуна no-LTO.conf).

Биз дагы кошушубуз керек УМБ to USE өзгөрмө үчүн make.conf, Бул керек, анткени иштеп чыгуучулар Gentoo бул оптимизацияны айрым пакеттерде колдонуу үчүн (жай) кошумча плакаттарды кошуп жатышат.

Бул бүткөндөн кийин, бардык тутум топтомдорун компиляциялоого өтөлү:

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

Күтүүнү улантуу менен, биз айтып жатабыз Сикет каталарды көрмөксөнгө салуу, ал эми &> бардык мүчүлүштүктөрдүн натыйжаларын каталар деп аталган файлга багыттоо, ушул файлды колдонуп, кайсы топтомдор топтолбой калгандыгын көрүп, аларды тизмеге кошуу pack.env.

&> Бизди бардык чыгаруудан ажыратат, эгерде процесстин натыйжаларын көргүбүз келсе, анда (root катары) бул буйрукту колдонушубуз керек:

tail -f /var/log/emerge.log

Баары ушул, мен көңүлүмдү көтөрүп, макала жазсам эч кандай шек санабайм деп үмүттөнөм Openmp жана / же чалалга.


Макаланын мазмуну биздин принциптерге карманат редакциялык этика. Ката жөнүндө кабарлоо үчүн чыкылдатыңыз бул жерде.

3 комментарий, өзүңүздүкүн калтырыңыз

Комментарий калтырыңыз

Сиздин электрондук почта дареги жарыяланбайт. Милдеттүү талаалар менен белгиленет *

*

*

  1. Маалыматтар үчүн жооптуу: Мигель Анхель Гатан
  2. Маалыматтын максаты: СПАМды көзөмөлдөө, комментарийлерди башкаруу.
  3. Мыйзамдуулук: Сиздин макулдугуңуз
  4. Маалыматтарды берүү: Маалыматтар үчүнчү жактарга юридикалык милдеттенмелерден тышкары билдирилбейт.
  5. Маалыматтарды сактоо: Occentus Networks (ЕС) тарабынан уюштурулган маалыматтар базасы
  6. Укуктар: Каалаган убакта маалыматыңызды чектеп, калыбына келтирип жана жок кыла аласыз.

  1.   ажыдыш ал мындай деди:

    Gentoo, meh ...
    Келгиле, маанилүү нерсе: Графит!

    1.    x11tete11x ал мындай деди:

      Сиздин xD тутумуңузду жарып чыккан суб-нормалдуу нерсе болгон акылсыз жана уятсыз Graphite xD, мен аны акыркы жолу колдонгондо, "билдирүү-жөнөтүү KDE <50" кылып, 3 жолу кайталап жасоо жетиштүү болгонун эстейм. 50 номери, айлана-чөйрө тозокко айланат хахахахаха, ооба, мен xD рефарттарына бара жаткам

    2.    жол ал мындай деди:

      Мен буга чейин дем-күч берип, Графиттин бирин жасадым деп айткам. Бирок, баары бир, Graphite (жана башка оптимизация) LTO менен мыкты иштейт. Ошондой эле, LTOдон айырмаланып, Graphite жана OpenMPде көйгөй бар. Бардык эле программалар андан пайда ала бербейт, ал эми пайдасы жоктордо иштөө көрсөткүчү төмөндөйт, андыктан бул учурда аны бир нече таңгакка гана колдонгон оң.