एलटीओ: हे काय आहे आणि जेंटूवर कसे वापरावे

एलटीओ म्हणजे काय?

एलटीओ चे परिवर्णी शब्द आहे दुवा वेळ ऑप्टिमायझेशन. हे एक ऑपरेशन आहे ज्यामध्ये स्त्रोत फायली जोडण्याच्या क्षणी कंपाईलर ऑप्टिमायझेशनला विलंब करते, ज्यामुळे आपल्याला एकाच फाईल म्हणून एक्झिक्युटेबल बनविणा all्या सर्व फायली पाहण्याची परवानगी मिळते आणि अशा प्रकारे ऑप्टिमायझेशन अधिक प्रभावी मार्गाने लागू होते.

अधिक माहितीसाठीः च्या विकी जीसीसी.

चे फायदे आणि कमतरता पाहण्यासाठी एलटीओ: च्या बेंचमार्क Phoronix

लक्षात ठेवण्याच्या गोष्टी

  • हे अस्थिर आहे, यामुळे काही पॅकेजेसमध्ये समस्या उद्भवू शकतात.
  • काही पॅकेजेस संकलित करण्यात अयशस्वी होतील (हे नंतर कसे निश्चित करावे याविषयी अधिक).
  • लिंकर वापरण्याची शिफारस केली जाते गोल्ड.
  • वापर नेहमी ची नवीनतम आवृत्ती जीसीसी.

गोल्ड, त्यास वापरण्यास अधिक आकर्षक बनविणार्‍या प्रगत वैशिष्ट्यांचे समर्थन करण्याव्यतिरिक्त एलटीओ, पेक्षा वेगवान आहे जीएनयू एलडी, विशेषत: जेव्हा ते मोठ्या प्रोग्रामकडे येते, जेथे ते बनू शकते 5 वेळा वेगवान. हे वापरण्यासाठी, चालवा:

binutils-config --linker ld.gold


एलटीओ वापरणे: शिफारस केलेली पद्धत

सक्रिय करण्याऐवजी एलटीओ जागतिक स्तरावर (ज्यामुळे समस्या उद्भवू शकतात) आम्हाला पाहिजे असलेल्या पॅकेजेसमध्ये हे सक्रिय करणे चांगले. या मार्गाने, केवळ आपल्याला प्राप्त होऊ शकणारे पॅकेजेस एलटीओ ते या ऑप्टिमायझेशनसह संकलित केले आहेत किंवा जे प्रोग्रामद्वारे हळूहळू संकलन वेळ टाळतात ज्यांचा फायदा होत नाही. हे खालील प्रकारे साध्य केले जाऊ शकते:

/ 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-ग्राहक / फायरफॉक्स) ठेवले पाहिजे package.env, एकत्र 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"

आणि फाईल मध्ये package.env ज्यांचे संकलन अयशस्वी होईल अशा पॅकेजेस आम्ही ठेवू एलटीओ. तो येथे माझे package.env (लक्षात ठेवा मी वापरत आहे nolto.conf त्याऐवजी non-LTO.conf).

आम्ही देखील जोडणे आवश्यक आहे एलटीओ च्या व्हेरिएबलचा वापर करा Make.conf, हे आवश्यक आहे कारण विकसकांचे गेन्टू ते काही पॅकेजेसमध्ये या ऑप्टिमायझेशनच्या वापरासाठी (हळूहळू) पर्यायी पॅच जोडत आहेत.

एकदा हे पूर्ण झाल्यावर सर्व सिस्टम पॅकेजेस पुन्हा तयार करण्यासाठी पुढे जाऊया.

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

कीप-गोनिंग वापरुन, आम्ही सांगत आहोत पोर्टेज चुकांकडे दुर्लक्ष करणे, &> सर्व बगचे आउटपुट एरर नावाच्या फाईलवर पुनर्निर्देशित करा, कोणती संकुल संकलित करण्यात त्यांची फाइल सूचीमध्ये समाविष्ट करू शकत नाही हे पहाण्यासाठी या फाईलचा वापर करा. package.env.

&> आम्हाला सर्व आउटपुटपासून वंचित ठेवेल, जर आपल्याला प्रक्रियेचे आउटपुट पहायचे असेल तर आपण (रूट म्हणून) ही आज्ञा वापरली पाहिजे:

tail -f /var/log/emerge.log

आणि एवढेच, मी आशा करतो की मी कोणतीही शंका सोडली नाही, जर मी उत्साही होईल आणि याबद्दल एक लेख लिहीन तर ओपन एमपी आणि / किंवा ग्रेफाइट.


आपली टिप्पणी द्या

आपला ई-मेल पत्ता प्रकाशित केला जाणार नाही. आवश्यक फील्ड चिन्हांकित केले आहेत *

*

*

  1. डेटा जबाबदार: मिगुएल Áन्गल गॅटन
  2. डेटाचा उद्देशः नियंत्रण स्पॅम, टिप्पणी व्यवस्थापन.
  3. कायदे: आपली संमती
  4. डेटा संप्रेषण: कायदेशीर बंधन वगळता डेटा तृतीय पक्षास कळविला जाणार नाही.
  5. डेटा संग्रहण: ओकेन्टस नेटवर्क (EU) द्वारा होस्ट केलेला डेटाबेस
  6. अधिकारः कोणत्याही वेळी आपण आपली माहिती मर्यादित, पुनर्प्राप्त आणि हटवू शकता.

  1.   msx म्हणाले

    जेंटू, मेह ...
    चला महत्वाच्या गोष्टीकडे जाऊ: ग्रेफाइट!

    1.    x11tete11x म्हणाले

      मूर्ख आणि संवेदनशील ग्रेफाइट एक्सडी, तुमची एक्सडी सिस्टम फोडणारी ही अनौपचारिक गोष्ट, मला आठवते की मी शेवटच्या वेळी याचा वापर केला होता, «अधिसूचित-केडीई <50" केल्यावर rates० वेळा पुनरावृत्ती होते जेणेकरून पुनरावृत्तीमध्ये 3 नंबर, वातावरण नरकात फोडले जाईल हाहााहा, होय, मी farts एक्सडी वर जात होतो

    2.    रोडर म्हणाले

      मी आधीच सांगितले आहे की मला अद्याप प्रोत्साहित केले गेले आहे आणि एक ग्रेफाइट बनविले गेले आहे. परंतु तरीही, ग्राफिट (आणि इतर कोणतेही ऑप्टिमायझेशन) एलटीओसह उत्कृष्ट कार्य करते. तसेच, एलटीओच्या विपरीत, ग्रेफाइट आणि ओपन एमपीमध्ये एक समस्या आहे. सर्व प्रोग्राम्सचा त्याचा फायदा होत नाही आणि ज्याचा त्याचा फायदा होत नाही अशांमध्ये कामगिरी कमी होते, म्हणून या प्रकरणात फक्त काही पॅकेजेससाठी हे वापरणे चांगले.