एलटीओ म्हणजे काय?
एलटीओ चे परिवर्णी शब्द आहे दुवा वेळ ऑप्टिमायझेशन. हे एक ऑपरेशन आहे ज्यामध्ये स्त्रोत फायली जोडण्याच्या क्षणी कंपाईलर ऑप्टिमायझेशनला विलंब करते, ज्यामुळे आपल्याला एकाच फाईल म्हणून एक्झिक्युटेबल बनविणा 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
आणि एवढेच, मी आशा करतो की मी कोणतीही शंका सोडली नाही, जर मी उत्साही होईल आणि याबद्दल एक लेख लिहीन तर ओपन एमपी आणि / किंवा ग्रेफाइट.
जेंटू, मेह ...
चला महत्वाच्या गोष्टीकडे जाऊ: ग्रेफाइट!
मूर्ख आणि संवेदनशील ग्रेफाइट एक्सडी, तुमची एक्सडी सिस्टम फोडणारी ही अनौपचारिक गोष्ट, मला आठवते की मी शेवटच्या वेळी याचा वापर केला होता, «अधिसूचित-केडीई <50" केल्यावर rates० वेळा पुनरावृत्ती होते जेणेकरून पुनरावृत्तीमध्ये 3 नंबर, वातावरण नरकात फोडले जाईल हाहााहा, होय, मी farts एक्सडी वर जात होतो
मी आधीच सांगितले आहे की मला अद्याप प्रोत्साहित केले गेले आहे आणि एक ग्रेफाइट बनविले गेले आहे. परंतु तरीही, ग्राफिट (आणि इतर कोणतेही ऑप्टिमायझेशन) एलटीओसह उत्कृष्ट कार्य करते. तसेच, एलटीओच्या विपरीत, ग्रेफाइट आणि ओपन एमपीमध्ये एक समस्या आहे. सर्व प्रोग्राम्सचा त्याचा फायदा होत नाही आणि ज्याचा त्याचा फायदा होत नाही अशांमध्ये कामगिरी कमी होते, म्हणून या प्रकरणात फक्त काही पॅकेजेससाठी हे वापरणे चांगले.