LTO: Gentoo မှာဘယ်လိုသုံးရမလဲ

LTO ဆိုတာဘာလဲ။

LTO များအတွက်အတိုကောက်ဖြစ်ပါတယ် Link ကိုအချိန် Optimization။ ၎င်းသည် compiler သည်အရင်းအမြစ်ဖိုင်များနှင့်ချိတ်ဆက်သည့်အချိန်တွင်ဖိုင်တွဲတစ်ခုအနေနှင့်ဖိုင်တစ်ခုတည်းအဖြစ်ဖွဲ့စည်းထားသည့်ဖိုင်များအားလုံးကိုကြည့်ရှုရန်ခွင့်ပြုခြင်းကိုပိုမိုကောင်းမွန်အောင်နှောင့်နှေးစေသောလုပ်ဆောင်မှုတစ်ခုဖြစ်သည်။

ပိုမိုသိရှိလိုပါက: ၏ဝီကီ GCC.

၏အကျိုးကျေးဇူးများနှင့်အားနည်းချက်များကိုကြည့်ရှုရန် LTO: ၏စံသတ်မှတ်ချက်များ Phoronix

စိတ်ကိုထားရန်အရာ

  • ၎င်းသည်မတည်ငြိမ်သောကြောင့်အချို့သော package များတွင်ပြproblemsနာဖြစ်စေနိုင်သည်။
  • အချို့သော package များသည် compile လုပ်ရန်ပျက်ကွက်လိမ့်မည် (နောက်ပိုင်းတွင်မည်သို့ဖြေရှင်းမည်နည်း) ။
  • linker ကိုအသုံးပြုရန်အကြံပြုသည် ရှေ.
  • အသုံး siempre ၏နောက်ဆုံးဗားရှင်း GCC.

ရှေအသုံးပြုရန်ပိုမိုဆွဲဆောင်မှုရှိသောအဆင့်မြင့်အင်္ဂါရပ်များကိုထောက်ပံ့ခြင်းအပြင် LTOအဲဒါထက်ပိုမြန်တယ် GNU ldအထူးသဖြင့်၎င်းသည်ကြီးမားသောပရိုဂရမ်များသို့ရောက်သောအခါ၎င်းသည်ဖြစ်လာနိုင်သည့်နေရာဖြစ်သည် ၅ ဆပိုမြန်သည်။ ၎င်းကိုအသုံးပြုရန်အတွက်၊

binutils-config --linker ld.gold


LTO ကိုအသုံးပြုခြင်း။ အကြံပြုထားသောနည်းလမ်း

သက်ဝင်စေမည့်အစား LTO တစ်ကမ္ဘာလုံး (ပြproblemsနာများဖြစ်စေနိုင်သော) ၎င်းကိုကျွန်ုပ်တို့လိုချင်သော package များ၌ဖွင့်ထားခြင်းက ပို၍ ကောင်းသည်။ ဤနည်းဖြင့်သင်အကျိုးရယူလိုသော packages များသာဖြစ်သည် 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.

အသုံးပြုရန် LTO အထုပ်တစ်ခုထဲတွင်ကျွန်ုပ်တို့သည်ဖိုင်တွင်၎င်း၏အမည် (နာမည်အပြည့်အစုံ၊ www-client / firefox အစား firefox အစား) ထည့်ရမည်။ မြတ်နိုးနှင့်အတူ LTO.conf သင့်ရဲ့ညာဘက်ရန်။ အောက်တွင်ဥပမာတစ်ခုဖြစ်သည်။

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

ယခုကျွန်ုပ်တို့သည်၎င်းတို့အသုံးပြုလိုသော package များကိုသာစုစည်းရန်လိုအပ်သည် LTO.


တစ်ကမ္ဘာလုံး LTO အသုံးပြုခြင်း (မထောက်ခံပါ)

လျှောက်ထားမယ့်အစား 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"

ပြီးတော့ဖိုင်ထဲမှာ မြတ်နိုး ကျနော်တို့အဘယ်သူ၏စုစည်းနှင့်အတူပျက်ကွက်သည့် packages များထားမည် LTO။ သူ ဒီမှာ မြတ်နိုး (ငါအသုံးပြုကြောင်းသတိပြုပါ nolto.conf ၏အရပျ၌ no-LTO.conf).

ကျွန်ုပ်တို့လည်းထည့်ရမည် LTO ၏ variable ကိုအသုံးပြုရန်ရန် အောင်နိုင်သူ, ဒါကလိုအပ်ပါတယ်၏ developer များ Gentoo သူတို့က (ဖြည်းဖြည်း) အချို့သော packages များ၌ဤ optimization ၏အသုံးပြုမှုအတွက် optional ကိုပြင်ဆင်ဖာထေးမှုများထည့်သွင်းနေကြသည်။

ဤအရာပြီးသည်နှင့်စနစ်အထုပ်များအားလုံးကိုပြန်လည်စုစည်းရန်ဆက်လုပ်ပါ။

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

–keep-going ကိုသုံးခြင်းအားဖြင့်ကျွန်ုပ်တို့သည်ပြောနေသည် Portage အမှားအယွင်းများကိုလျစ်လျူရှုရန် &> အမှားအယွင်းများဟုခေါ်သည့်ဖိုင်သို့အမှားအယွင်းများအားလုံး၏ရလဒ်ကိုပြန်ပို့ပါ၊ မည်သည့်အစုများစုဆောင်း။ မရသောအချက်အလက်များကိုကြည့်။ ထိုစာရင်းထဲသို့ထည့်မည်နည်း မြတ်နိုး.

& &> သည် output အားလုံးကိုကျွန်ုပ်တို့အားဆုံးရှုံးစေလိမ့်မည်။ အကယ်၍ ကျွန်ုပ်တို့သည်လုပ်ငန်းစဉ်၏ output ကိုမြင်လိုပါကကျွန်ုပ်တို့သည်ဤ command (root အဖြစ်) ကိုအသုံးပြုရမည်။

tail -f /var/log/emerge.log

ထိုအရာတွေအားလုံးကိုငါသံသယမ ၀ င်ခဲ့ဘူး၊ မျှော်လင့်ချက်တစ်ခုနဲ့ဆောင်းပါးတစ်ပုဒ်ရေးမယ်ဆိုပါစို့ ပွင် နှင့် / သို့မဟုတ် graphite.


ဆောင်းပါး၏ပါ ၀ င်မှုသည်ကျွန်ုပ်တို့၏အခြေခံမူများကိုလိုက်နာသည် အယ်ဒီတာအဖွဲ့ကျင့်ဝတ်။ အမှားတစ်ခုကိုသတင်းပို့ရန်ကလစ်နှိပ်ပါ ဒီမှာ.

3 မှတ်ချက်များ, သင့်စွန့်ခွာ

သင်၏ထင်မြင်ချက်ကိုချန်ထားပါ

သင့်အီးမေးလ်လိပ်စာပုံနှိပ်ထုတ်ဝေမည်မဟုတ်ပါ။ တောင်းဆိုနေတဲ့လယ်ယာနှင့်အတူမှတ်သားထားတဲ့ *

*

*

  1. အချက်အလက်အတွက်တာဝန်ရှိသည် - Miguel ÁngelGatón
  2. အချက်အလက်များ၏ရည်ရွယ်ချက်: ထိန်းချုပ်ခြင်း SPAM, မှတ်ချက်စီမံခန့်ခွဲမှု။
  3. တရားဝင်: သင်၏ခွင့်ပြုချက်
  4. အချက်အလက်များ၏ဆက်သွယ်မှု - ဒေတာများကိုဥပဒေအရတာ ၀ န်ယူမှုမှ လွဲ၍ တတိယပါတီများသို့ဆက်သွယ်မည်မဟုတ်ပါ။
  5. ဒေတာသိမ်းဆည်းခြင်း: Occentus ကွန်ယက်များ (အီးယူ) မှလက်ခံသည့်ဒေတာဘေ့စ
  6. အခွင့်အရေး - မည်သည့်အချိန်တွင်မဆိုသင်၏အချက်အလက်များကိုကန့်သတ်၊

  1.   msx ဟုသူကပြောသည်

    ဟင် ...
    ရဲ့အရေးကြီးတဲ့အရာသွားကြကုန်အံ့: Graphite!

    1.    x11tete11x ဟုသူကပြောသည်

      သင်၏ xD စနစ်ကိုဖြိုခွဲသောပုံမှန်မဟုတ်သောအရာများဖြစ်သော Graphic xD stupid နှင့် ssensual Graphite ငါနောက်ဆုံးအသုံးပြုသည့်အခါ၎င်းသည်လုပ်ရန်လုံလောက်ရုံမျှနှင့်အကြိမ် ၅၀ "notification-send KDE <50" ကိုလုပ်ခြင်းဖြင့်၎င်းသည်ထပ်တလဲလဲပြုလုပ်ရန်ဖြစ်သည်။ နံပါတ် ၅၀ ပတ် ၀ န်းကျင်ဟာဟဟဟားဟားဟားဟား။

    2.    လမ်းပြ ဟုသူကပြောသည်

      ငါနေဆဲငါ့ကိုအားပေးအားမြှောက်နှင့် Graphite ၏တ ဦး တည်းလုပ်ကပြောသည်။ သို့သော်မည်သို့ပင်ဖြစ်စေ၊ Graphite သည်အခြား LTO များနှင့်အကောင်းဆုံးအလုပ်လုပ်သည်။ LTO နှင့်မတူဘဲ၊ Graphite နှင့် OpenMP တို့တွင်ပြproblemနာရှိနေသည်။ ပရိုဂရမ်အားလုံးသည်၎င်းမှအကျိုးမခံစားရပါ၊ ၎င်းမှအကျိုးမပြုသောသူများအတွက်စွမ်းဆောင်ရည်ကျဆင်းသည်။ ထို့ကြောင့်ဤကိစ္စတွင်၎င်းကိုအနည်းအများသာအသုံးပြုရန်ပိုကောင်းသည်။