એલટીઓ એટલે શું?
એલટીઓ માટે ટૂંકાક્ષર છે લિંક સમય timપ્ટિમાઇઝેશન. તે એક isપરેશન છે જેમાં કમ્પાઇલર સ્રોત ફાઇલોને જોડવાની ક્ષણે optimપ્ટિમાઇઝન્સને વિલંબિત કરે છે, તમને બધી ફાઇલો જોવા દે છે જે એક ફાઇલ તરીકે એક્ઝિક્યુટેબલ બનાવે છે, અને આ રીતે વધુ અસરકારક રીતે optimપ્ટિમાઇઝેશન લાગુ કરે છે.
ના ફાયદા અને ખામીઓ જોવા માટે એલટીઓ: ના બેંચમાર્ક Phoronix
ધ્યાનમાં રાખવાની બાબતો
- તે અસ્થિર છે, તે કેટલાક પેકેજોમાં સમસ્યા પેદા કરી શકે છે.
- કેટલાક પેકેજો કમ્પાઇલ કરવામાં નિષ્ફળ થશે (આને પછીથી કેવી રીતે ઠીક કરવું તે વિશે વધુ).
- લિન્કરનો ઉપયોગ કરવાની ભલામણ કરવામાં આવે છે સોનું.
- ઉપયોગની Siempre નું નવીનતમ સંસ્કરણ જીસીસી.
સોનું, અદ્યતન સુવિધાઓને ટેકો આપવા ઉપરાંત જે તેને વાપરવા માટે વધુ આકર્ષક બનાવે છે એલટીઓ, તે કરતાં ઝડપી છે જી.એન.યુ. એલ.ડી., ખાસ કરીને જ્યારે તે મોટા પ્રોગ્રામ્સની વાત આવે છે, જ્યાં તે બની શકે છે 5 વખત ઝડપી. તેનો ઉપયોગ કરવા માટે, ચલાવો:
binutils-config --linker ld.gold
એલટીઓનો ઉપયોગ: ભલામણ કરેલ પદ્ધતિ
સક્રિય કરવાને બદલે એલટીઓ વૈશ્વિક સ્તરે (જે સમસ્યાઓ પેદા કરી શકે છે) તેને આપણે ઇચ્છતા પેકેજોમાં સક્રિય કરવું વધુ સારું છે. આ રીતે, ફક્ત તે જ પેકેજો જેમાંથી તમે લાભ મેળવવા માંગો છો એલટીઓ તેઓ આ optimપ્ટિમાઇઝેશન સાથે કમ્પાઈલ કરે છે, અથવા જે પ્રોગ્રામ્સમાં ધીમું સંકલન સમય ટાળે છે જેનો તેનો લાભ નથી. આ નીચેની રીતથી પ્રાપ્ત કરી શકાય છે:
/ 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.
તેથી, વાપરવા માટે એલટીઓ પેકેજમાં, આપણે હમણાં જ તેનું નામ (સંપૂર્ણ નામ, www-client / firefox, ફાયરફોક્સને બદલે) ફાઇલમાં મૂકવું પડશે પેકેજ.એનવીસાથે LTO.conf તમારા જમણે. નીચે એક ઉદાહરણ છે:
app-emulation/wine LTO.conf
www-client/firefox LTO.conf
sys-devel/gcc LTO.conf
kde-base/kdelibs LTO.conf
હવે આપણે ફક્ત તે પેકેજો કમ્પાઇલ કરવા છે જેનો તેઓ ઉપયોગ કરે છે એલટીઓ.
વૈશ્વિક સ્તરે એલટીઓનો ઉપયોગ કરવો (આગ્રહણીય નથી)
અરજી કરવાને બદલે એલટીઓ પેકેજ દ્વારા પેકેજ, અમે તેને વૈશ્વિક સ્તરે પણ લાગુ કરી શકીએ છીએ (જે હું ઉપયોગ કરું છું). તેને લાગુ કરવા માટે, અનુસરો પગલાં આ છે:
અમે /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"
અને ફાઇલમાં પેકેજ.એનવી અમે પેકેજો મૂકીશું જેનું સંકલન નિષ્ફળ જશે એલટીઓ. તે અહીં મારા પેકેજ.એનવી (નોંધો કે હું ઉપયોગ કરું છું nolto.conf ને બદલે કોઈ- LTO.conf).
આપણે પણ ઉમેરવું જ જોઇએ એલટીઓ ના ચલનો ઉપયોગ કરો make.conf, આ આવશ્યક છે કારણ કે વિકાસકર્તાઓ જેન્ટૂ કેટલાક પેકેજોમાં આ optimપ્ટિમાઇઝેશનના ઉપયોગ માટે તેઓ (ધીમે ધીમે) વૈકલ્પિક પેચો ઉમેરી રહ્યા છે.
એકવાર આ થઈ જાય, ચાલો બધા સિસ્ટમ પેકેજો ફરીથી કમ્પાઇલ કરવા આગળ વધીએ:
emerge -e @world @system --keep-going &> errores
કેપ-ગોઇંગનો ઉપયોગ કરીને, અમે કહી રહ્યા છીએ પોર્ટેજ ભૂલો અવગણવા માટે, જ્યારે &> બધા ભૂલોના આઉટપુટને ભૂલો તરીકે ઓળખાતી ફાઇલમાં રીડાયરેક્ટ કરો, પેકેજ કમ્પાઈલ કરવામાં નિષ્ફળ થાય છે અને સૂચિમાં ઉમેરવા માટે આ ફાઇલનો ઉપયોગ કરો. પેકેજ.એનવી.
tail -f /var/log/emerge.log
અને તે બધુ જ છે, હું આશા રાખું છું કે મેં કોઈ શંકા છોડી નથી, જો હું ઉત્સાહ વ્યક્ત કરીશ અને તે વિશે એક લેખ લખીશ ઓપનએમપી અને / અથવા ગ્રેફાઈટ.
જેન્ટુ, મેહ ...
ચાલો મહત્વપૂર્ણ વસ્તુ પર જઈએ: ગ્રેફાઇટ!
મૂર્ખ અને સંવેદનશીલ ગ્રેફાઇટ એક્સડી, તે અસામાન્ય વસ્તુ જે તમારી એક્સડી સિસ્ટમને વિસ્ફોટ કરે છે, મને યાદ છે કે છેલ્લી વખત જ્યારે મેં તેનો ઉપયોગ કર્યો હતો, ત્યારે તે "નોટિફાઇ-સેન્ડ્ર કે.ડી. <50" કરી 3 વખત પુનરાવર્તિત કરવા માટે પૂરતું હતું જેથી પુનરાવર્તનમાં નંબર 50, પર્યાવરણ નરકમાં છલકાશે હાહાહાહાહ, હું ફરી ફાર્મ્સ એક્સડી પર જતો હતો
મેં પહેલેથી જ કહ્યું હતું કે મને હજી પણ પ્રોત્સાહન આપવામાં આવ્યું હતું અને ગ્રેફાઇટમાંથી એક બનાવ્યો હતો. પરંતુ કોઈપણ રીતે, ગ્રેફાઇટ (અને કોઈપણ અન્ય ઓપ્ટિમાઇઝેશન) એલટીઓ સાથે શ્રેષ્ઠ કાર્ય કરે છે. ઉપરાંત, એલટીઓથી વિપરીત, ગ્રેફાઇટ અને ઓપન એમપીમાં સમસ્યા છે. બધા પ્રોગ્રામ્સ તેનો લાભ લેતા નથી, અને તેમાંથી જેનો ફાયદો થતો નથી, પ્રભાવ ઓછો થાય છે, તેથી આ કિસ્સામાં તેનો ઉપયોગ ફક્ત થોડા પેકેજો માટે જ કરવો વધુ સારું છે.