LTO: എന്താണെന്നും അത് ജെന്റൂവിൽ എങ്ങനെ ഉപയോഗിക്കാമെന്നും

എന്താണ് LTO?

LTO എന്നതിന്റെ ചുരുക്കരൂപമാണ് ലിങ്ക് ടൈം ഒപ്റ്റിമൈസേഷൻ. ഉറവിട ഫയലുകൾ ലിങ്കുചെയ്യുന്ന സമയത്ത് കംപൈലർ ഒപ്റ്റിമൈസേഷനുകൾ കാലതാമസം വരുത്തുന്ന ഒരു പ്രവർത്തനമാണിത്, ഒരൊറ്റ എക്സിക്യൂട്ടബിൾ നിർമ്മിക്കുന്ന എല്ലാ ഫയലുകളും ഒരൊറ്റ ഫയലായി കാണാൻ നിങ്ങളെ അനുവദിക്കുന്നു, അങ്ങനെ ഒപ്റ്റിമൈസേഷനുകൾ കൂടുതൽ ഫലപ്രദമായി പ്രയോഗിക്കുന്നു.

കൂടുതൽ വിവരങ്ങൾക്ക്: ന്റെ വിക്കി ജിസിസി.

ഇതിന്റെ ഗുണങ്ങളും പോരായ്മകളും കാണുന്നതിന് LTO: ന്റെ മാനദണ്ഡങ്ങൾ ഫൊരൊനിക്സ

ഓർമ്മിക്കേണ്ട കാര്യങ്ങൾ

  • ഇത് അസ്ഥിരമാണ്, ഇത് ചില പാക്കേജുകളിൽ പ്രശ്നങ്ങൾ സൃഷ്ടിക്കും.
  • ചില പാക്കേജുകൾ കംപൈൽ ചെയ്യുന്നതിൽ പരാജയപ്പെടും (ഇത് പിന്നീട് എങ്ങനെ പരിഹരിക്കാമെന്നതിനെക്കുറിച്ച് കൂടുതൽ).
  • ലിങ്കർ ഉപയോഗിക്കാൻ ശുപാർശ ചെയ്യുന്നു ഗോൾഡ്.
  • യുഎസ്എ സിഎംപ്രെ ന്റെ ഏറ്റവും പുതിയ പതിപ്പ് ജിസിസി.

ഗോൾഡ്, ഉപയോഗിക്കാൻ കൂടുതൽ ആകർഷകമാക്കുന്ന നൂതന സവിശേഷതകളെ പിന്തുണയ്ക്കുന്നതിനൊപ്പം LTO, ഇത് വേഗതയേറിയതാണ് ഗ്നു ldപ്രത്യേകിച്ചും വലിയ പ്രോഗ്രാമുകളിലേക്ക് വരുമ്പോൾ, അത് ആകാം 5 മടങ്ങ് വേഗത്തിൽ. ഇത് ഉപയോഗിക്കുന്നതിന്, പ്രവർത്തിപ്പിക്കുക:

binutils-config --linker ld.gold


LTO ഉപയോഗിക്കുന്നു: ശുപാർശചെയ്‌ത രീതി

സജീവമാക്കുന്നതിനുപകരം LTO ആഗോളതലത്തിൽ (ഇത് പ്രശ്‌നങ്ങൾക്ക് കാരണമാകും) ഞങ്ങൾ ആഗ്രഹിക്കുന്ന പാക്കേജുകളിൽ ഇത് സജീവമാക്കുന്നതാണ് നല്ലത്. ഈ രീതിയിൽ, നിങ്ങൾക്ക് പ്രയോജനം നേടാൻ ആഗ്രഹിക്കുന്ന പാക്കേജുകൾ മാത്രം 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) ഫയലിൽ‌ ഇടുക 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.


ആഗോളതലത്തിൽ 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"

ഫയലിലും pack.env സമാഹാരം പരാജയപ്പെടുന്ന പാക്കേജുകൾ ഞങ്ങൾ ഇടും LTO. അവൻ ഇവിടെ എന്റെ pack.env (ഞാൻ ഉപയോഗിക്കുന്നത് ശ്രദ്ധിക്കുക nolto.conf പകരം LTO.conf ഇല്ല).

ഞങ്ങളും ചേർക്കണം LTO ന്റെ USE വേരിയബിളിലേക്ക് make.conf, ഇത് ആവശ്യമാണ് കാരണം ഡവലപ്പർമാർ ജെന്റൂ ചില പാക്കേജുകളിൽ ഈ ഒപ്റ്റിമൈസേഷന്റെ ഉപയോഗത്തിനായി അവ (പതുക്കെ) ഓപ്ഷണൽ പാച്ചുകൾ ചേർക്കുന്നു.

ഇത് ചെയ്തുകഴിഞ്ഞാൽ, എല്ലാ സിസ്റ്റം പാക്കേജുകളും വീണ്ടും കംപൈൽ ചെയ്യുന്നതിന് നമുക്ക് മുന്നോട്ട് പോകാം:

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

–കീപ്പ്-പോകുന്നതിലൂടെ, ഞങ്ങൾ പറയുന്നു പോർട്ടേജ് പിശകുകൾ അവഗണിക്കാൻ &> എല്ലാ ബഗുകളുടെയും output ട്ട്‌പുട്ട് പിശകുകൾ എന്ന് വിളിക്കുന്ന ഒരു ഫയലിലേക്ക് റീഡയറക്‌ടുചെയ്യുക, ഏത് പാക്കേജുകൾ കംപൈൽ ചെയ്യുന്നതിൽ പരാജയപ്പെടുന്നുവെന്ന് കാണുന്നതിന് ഈ ഫയൽ ഉപയോഗിച്ച് അവ പട്ടികയിലേക്ക് ചേർക്കുക pack.env.

&> എല്ലാ output ട്ട്‌പുട്ടും നഷ്‌ടപ്പെടുത്തും, പ്രോസസിന്റെ see ട്ട്‌പുട്ട് കാണണമെങ്കിൽ, ഈ കമാൻഡ് (റൂട്ടായി) ഉപയോഗിക്കണം:

tail -f /var/log/emerge.log

അത്രയേയുള്ളൂ, ഞാൻ ഒരു സംശയവും അവശേഷിപ്പിച്ചിട്ടില്ലെന്ന് ഞാൻ പ്രതീക്ഷിക്കുന്നു, അങ്ങനെയാണെങ്കിൽ ഞാൻ ധൈര്യപ്പെടുകയും ഒരു ലേഖനം എഴുതുകയും ചെയ്യും ഓപ്പൺഎംപി ഒപ്പം / അല്ലെങ്കിൽ ഗ്രാഫൈറ്റ്.


ലേഖനത്തിന്റെ ഉള്ളടക്കം ഞങ്ങളുടെ തത്ത്വങ്ങൾ പാലിക്കുന്നു എഡിറ്റോറിയൽ എത്തിക്സ്. ഒരു പിശക് റിപ്പോർട്ടുചെയ്യാൻ ക്ലിക്കുചെയ്യുക ഇവിടെ.

3 അഭിപ്രായങ്ങൾ, നിങ്ങളുടേത് വിടുക

നിങ്ങളുടെ അഭിപ്രായം ഇടുക

നിങ്ങളുടെ ഇമെയിൽ വിലാസം പ്രസിദ്ധീകരിച്ചു ചെയ്യില്ല. ആവശ്യമായ ഫീൽഡുകൾ കൊണ്ട് അടയാളപ്പെടുത്തുന്നു *

*

*

  1. ഡാറ്റയുടെ ഉത്തരവാദിത്തം: മിഗുവൽ ഏഞ്ചൽ ഗാറ്റൻ
  2. ഡാറ്റയുടെ ഉദ്ദേശ്യം: സ്പാം നിയന്ത്രിക്കുക, അഭിപ്രായ മാനേജുമെന്റ്.
  3. നിയമസാധുത: നിങ്ങളുടെ സമ്മതം
  4. ഡാറ്റയുടെ ആശയവിനിമയം: നിയമപരമായ ബാധ്യതയല്ലാതെ ഡാറ്റ മൂന്നാം കക്ഷികളുമായി ആശയവിനിമയം നടത്തുകയില്ല.
  5. ഡാറ്റ സംഭരണം: ഒസെന്റസ് നെറ്റ്‌വർക്കുകൾ (ഇയു) ഹോസ്റ്റുചെയ്യുന്ന ഡാറ്റാബേസ്
  6. അവകാശങ്ങൾ: ഏത് സമയത്തും നിങ്ങളുടെ വിവരങ്ങൾ പരിമിതപ്പെടുത്താനും വീണ്ടെടുക്കാനും ഇല്ലാതാക്കാനും കഴിയും.

  1.   ബേസിക് പറഞ്ഞു

    ജെന്റൂ, മെഹ് ...
    പ്രധാനപ്പെട്ട കാര്യത്തിലേക്ക് കടക്കാം: ഗ്രാഫൈറ്റ്!

    1.    x11tete11x പറഞ്ഞു

      നിങ്ങളുടെ എക്സ്ഡി സിസ്റ്റം പൊട്ടിത്തെറിക്കുന്ന അസാധാരണമായ കാര്യം വിഡ് up ിത്തവും സെൻസുവലും ആയ ഗ്രാഫൈറ്റ് എക്സ്ഡി, ഞാൻ അവസാനമായി ഇത് ഉപയോഗിച്ചതായി ഓർക്കുന്നു, അതിനായി 50 തവണ "അറിയിപ്പ്-അയയ്ക്കുക കെ‌ഡി‌ഇ <3" ചെയ്യുന്നത് ആവർത്തിക്കുന്നു. നമ്പർ 50, പരിസ്ഥിതി നരകത്തിലേക്ക് പൊട്ടിത്തെറിക്കും hahahahaha, അതെ, ഞാൻ വീണ്ടും ഫോർട്ട് എക്സ്ഡിയിലേക്ക് പോവുകയായിരുന്നു

    2.    റോഡർ‌ പറഞ്ഞു

      എന്നെ ഇപ്പോഴും പ്രോത്സാഹിപ്പിക്കുകയും ഗ്രാഫൈറ്റ് ആക്കുകയും ചെയ്തുവെന്ന് ഞാൻ ഇതിനകം പറഞ്ഞു. എന്തായാലും, ഗ്രാഫൈറ്റ് (കൂടാതെ മറ്റേതെങ്കിലും ഒപ്റ്റിമൈസേഷനും) LTO- യുമായി മികച്ച രീതിയിൽ പ്രവർത്തിക്കുന്നു. കൂടാതെ, എൽ‌ടി‌ഒയിൽ നിന്ന് വ്യത്യസ്തമായി ഗ്രാഫൈറ്റ്, ഓപ്പൺ‌എം‌പി എന്നിവയ്‌ക്ക് ഒരു പ്രശ്‌നമുണ്ട്. എല്ലാ പ്രോഗ്രാമുകളും അതിൽ നിന്ന് പ്രയോജനം നേടുന്നില്ല, മാത്രമല്ല അതിൽ നിന്ന് പ്രയോജനം ലഭിക്കാത്തവയിലും പ്രകടനം കുറയുന്നു, അതിനാൽ ഈ സാഹചര്യത്തിൽ ഇത് കുറച്ച് പാക്കേജുകൾക്ക് മാത്രം ഉപയോഗിക്കുന്നതാണ് നല്ലത്.