क्या अब प्रीलिंक का उपयोग करने का कोई मतलब है?


11

वर्षों से विभिन्न लिनक्स बॉक्सों का उपयोग करते हुए, मैंने अनुप्रयोगों के लोड समय में तेजी लाने के लिए प्रीलिंक का उपयोग करने की आदत में प्रवेश किया है।

हालांकि, किसी भी पैकेज को पुनर्स्थापित करने के बाद, हर बार प्रीलिंक चलाने के लाभों को नकार दिया जाता है, क्योंकि यह, इसके सभी आश्रितों और इसके आश्रितों को फिर से प्रीलिंक करने की आवश्यकता होती है।

यह प्रीलिंकिंग कई समस्याओं का कारण बन सकता है, और ऐसा ही एक द्विआधारी एमडी 5 अमान्य है, जो एमडी 5 बनाम अपस्ट्रीम रिविजन की तुलना करने वाली चीजों के लिए समस्याग्रस्त है या यह तय करने के लिए एमडी 5 का उपयोग करता है कि बाइनरी को बदल दिया गया है या नहीं और इस प्रकार पैकेज हटाने पर साफ नहीं होना चाहिए ।

हाल ही में, कंप्यूटर बहुत तेजी से बढ़े हैं, और लाभ प्रीलिंक पैदावार अब शायद ही उल्लेखनीय है।

क्या प्रीलिंक अभी भी एक तर्कसंगत अवधारणा का उपयोग कर रहा है, या इसे लापरवाही से त्याग दिया जा सकता है और पिछले युग के कुछ के रूप में पीछे छोड़ दिया जा सकता है?

जवाबों:


4

जब तक आप LWN.net की सदस्यता नहीं लेते, तब तक आप इसे 23 जुलाई 2009 तक नहीं पढ़ सकते, लेकिन आपको http://lwn.net/Articles/341244/ उपयोगी मिल सकता है।


तब आप इस लेख के लिए "suscriber लिंक" प्रदान कर सकते हैं।
वज़ोक्स

5
ग्राहक लिंक का उपयोग करने के लिए मुझे हमेशा बुरा लगता है। जैसे मैं उन्हें या कुछ और चीर रहा हूँ।
डेविड पशले

2
मैं सहमत हूँ। जब मुझे कोई दिलचस्प लेख आता है, तो मुझे सीधे संपर्क (दोस्तों या सहकर्मियों) के लिए ग्राहक लिंक प्रदान करने में कोई आपत्ति नहीं है, लेकिन इसे सार्वजनिक रूप से पोस्ट करना गलत लगता है।
क्रिस्टोफर कैशेल

1

मैं यह नहीं कहूंगा कि इसे मनमाने ढंग से खारिज कर दिया जाना चाहिए, हालांकि मैं निश्चित रूप से कहूंगा कि इसका उपयोग थोड़ा और सोचा जाना चाहिए।

आधुनिक उच्च-अंत मशीन पर जिसे अक्सर अपडेट किया जा रहा है, प्रीलिंक एक उपयोगी अनुकूलन नहीं हो सकता है। हालांकि, अभी भी कई मामले हैं जहां यह उपयोग करने लायक हो सकता है। उदाहरण के लिए, पुराने या निचले सिरे वाली मशीन पर, या ऐसी मशीनों पर जो काफी स्थिर होती हैं और बार-बार होने वाले बदलाव या अपडेट का अनुभव नहीं करती हैं। यह सार्थक भी हो सकता है यदि आपके पास बार-बार चलाए जा रहे कार्यक्रमों की उच्च दर है (मैं कुछ स्थितियों के बारे में सोच सकता हूं जहां आपके पास तेजी से उत्तराधिकार में या समानांतर में चलने वाले कार्यक्रम हो सकते हैं जहां प्रीलिंकिंग प्रदर्शन में सुधार कर सकता है)।

सभी में, आपको अपनी विशिष्ट स्थिति पर विचार करने की आवश्यकता है, और फिर तय करें कि क्या लाभ अतिरिक्त काम और प्रयास से आगे निकल जाते हैं।


1
"बार-बार चलाए जा रहे कार्यक्रमों की एक उच्च दर" - यदि आप उस स्थिति में हैं, तो बायनेरिज़ और लाइब्रेरीज़ आपके फ़ाइल सिस्टम कैश में समाप्त हो जाएंगे। प्रीलिंकिंग में मदद करने का एकमात्र समय यह है कि क्या आप इतनी मेमोरी भूखे हैं कि आपके पास बहुत कम एफएस कैश उपलब्ध है
डैनियल लॉसन

2
यदि प्रोग्राम फ़ाइल सिस्टम कैश में संग्रहीत है, तो भी प्रीलिंकिंग प्रोग्राम की शुरुआत को गति देगा। जाहिर है, जब प्रोग्राम (और संबद्ध पुस्तकालय) कैश किए जाते हैं, तो प्रदर्शन में वृद्धि कम ध्यान देने योग्य होती है। हालाँकि, चलाए जा रहे कार्यक्रमों की दर के आधार पर, कुछ माइक्रोसेकंड अंततः जोड़ सकते हैं।
क्रिस्टोफर काशेल

1

मैं कहूंगा कि प्रीलिंक निश्चित रूप से बहु-उपयोगकर्ता डेस्कटॉप सर्वरों पर उपयोगी है, जैसे कि स्कूलों में उपयोग किए जाने वाले एलटीएसपी सर्वर और उदाहरण के लिए नेट कैफे। न केवल प्रीलिंक अप्लिकेशन लोडिंग को गति देता है, बल्कि यह उपयोगकर्ताओं के बीच विवाद के कारण रैम उपयोग और डिस्क थ्रैशिंग में भी सुधार करता है, जिससे सर्वर पर कई और साथ-साथ उपयोगकर्ताओं को अनुमति मिलती है।


0

मुझे लगता है कि मेमोरी गिरने की कीमतें कम उपयोगी हो रही हैं। यदि आप अभी भी चीजों को थोड़ा गति देना चाहते हैं तो आप प्रीलोड में देख सकते हैं ।


मैंने प्रीलोड करने की कोशिश की, मैंने पाया कि यह स्टार्टअप टाइम को धीमा कर देता है जबकि यह दोनों कोर को रीडहैड की चीज बनाने के लिए चबाता है। और यह भी किसी कारण से मैं बाहर नहीं कर सकता क्योंकि एक्स बूट के दौरान मर गया। इसके अलावा, यदि आप अक्सर रिबूट नहीं करते हैं, तो प्रीलोड रुकना उपयोगी है।
केंट फ्रेड्रिक जूल 12'09

0

मैं ओएस संस्करण के लिए उस निर्णय को छोड़ देता हूं। यदि डिफ़ॉल्ट रूप से ओएस नियमित रूप से क्रॉन का उपयोग करके प्रीलिंक को कॉल करना चाहता है तो ठीक है और हो सकता है कि यह इतना उपयोगी नहीं है। मुझे आशा है कि वितरण के रचनाकारों ने डिफ़ॉल्ट रूप से प्रीलिंक विकल्प जोड़ने / हटाने का चयन करने से पहले सोचा होगा। इसलिए मैं खुद चीजों का विश्लेषण करने के बजाय उनके साथ जाता हूं।


एर, यह वास्तव में डिफ़ॉल्ट नहीं है, इसका एक पैकेज जिसे आपको इंस्टॉल करना है, और यदि यह स्थापित नहीं है तो आपको प्रीलिंक किए गए सामान नहीं मिलते हैं। यदि इसकी स्थापना, यह एक क्रोन स्क्रिप्ट बनाने के लिए है, जो डिफ़ॉल्ट रूप से बंद है, जिसे आपको मैन्युअल रूप से सक्षम करना होगा।
केंट फ्रेड्रिक जूल 12'09

यह डिफॉल्ट रूप से फेडोरा नॉट ऑफ डिफॉल्ट है। यह 19 को छोड़ दिया जाता है, लेकिन बंद नहीं किया गया। यह फेडोरा 6 या 7. के बाद से एक ही है
सौरभ बड़जात्या

0

जेंटू प्रीलिंक का उपयोग करता है। वे md5sum मुद्दे के आसपास प्रिलिंक जानकारी को अनदेखा करके हैश की गणना कर रहे हैं।

Prelink आपको हमेशा एक गति को बढ़ावा देगा हालांकि यह कम और कम ध्यान देने योग्य हो सकता है क्योंकि हार्डवेयर तेज हो जाता है। अपने हार्डवेयर पर निश्चित रूप से जानने का एकमात्र तरीका है कि आप प्रीलिंक को बंद करें और देखें कि आपको ऐप लॉन्च पर मंदी कैसी लगी।

सिडेनोट: ओएस एक्स प्रीलिंकिंग का एक रूप भी करता था, लेकिन इसे एक लिंक किए गए कैश के पक्ष में छोड़ दिया गया है जो लिंक खुद को बनाए रखता है। दोनों दुनिया के सर्वश्रेष्ठ, कोई बाइनरी नहीं बदल रहा है और कोई वास्तविक ओवरहेड बनाम सामान्य लिंकिंग नहीं है। मुझे उम्मीद है कि लिनक्स कुछ बिंदु पर इस विचार को उठाता है :)

अद्यतन: मैंने हाल ही में लिनक्स पर प्रीलिंकिंग की कोशिश की , और कई फ़ाइलों और प्रक्रियाओं के साथ cscope के संकलन के लिए मुझे 5% गति को बढ़ावा मिला।


1
यह वास्तव में नहीं है ... इसकी अभी भी कुछ आपको स्थापित और कॉन्फ़िगर करना है, मैं यह कहता हूं क्योंकि मैं जेंटू का उपयोग कर रहा हूं। और आप वास्तव में प्रीलिंक को "बंद" नहीं कर सकते, आप केवल प्रीलिंक चलाना बंद कर सकते हैं, या अपने पूरे सिस्टम को अनलिंक कर सकते हैं। इसके अलावा, किसी कारण से मेरे लिए अनजान, पलुडीस में प्रीलिंक किए गए बायनेरिज़ के साथ समस्याएं होती हैं, और एक पूर्व-प्रोलिंक हुक (असमर्थित) के बिना यह बायनेरिज़ को पीछे छोड़ देता है, क्रॉफ्ट को पैदावार देता है। हाल ही में मैंने कुछ केडीई ऐप की खोज की जो हुक लगाने से पहले तथ्य के कारण पीछे रह गए थे, और वे नए स्थान से पहले एक अलग स्थान पर थे, जिससे सेग
केंट फ्रेड्रिक

संभवतः, लिंकर ऑप्टिमाइज़ेशन (-Wl, -O1) को सक्षम करने में- और नए परिवर्तन में gn-hash आवंटन OSX के लिए ले जाया गया है, जो संभवतः अधिक प्रभावी विकल्प है।
केंट फ्रेड्रिक जूल

मुझे यह स्वीकार करना चाहिए कि जब से मैं gentoo का उपयोग करता हूं, तब से यह है ... मैं तब से OS X पर चला गया हूं :)। मुझे याद है कि मैंने एक बार ओएस एक्स पर किया था एक परीक्षण: एक बार में सभी अनुप्रयोगों को शुरू करें और उस समय (लगभग 1 मिनट iirc)। फिर, सभी प्रीलिंक जानकारी को हटा दें और सभी ऐप्स को फिर से शुरू करें। उस समय 5 मिनट लगे ... यह 2005 में एक टावर मैक, एक वास्तविक जानवर पर था।
w00t

1
आपके विचार के एक काउंटर के रूप में कि स्पीडलिंक को प्रीलिंक करना कम ध्यान देने योग्य हो सकता है: वे रनटाइम लोड करने योग्य कामों के उपयोग के अपने कार्यक्रमों में आसमान छूते कार्यक्रमों के रूप में अधिक महत्वपूर्ण हो सकते हैं। 2009 के एक gvim ने 55 रनटाइम लिब का इस्तेमाल किया। 2 साल पहले से इस्तेमाल किए गए 73 में से। 2009 से 7 में से 'माउंट', आज से माउंट, उनमें से 4 / usr / lib64 में 6 और / lib64 में 6 का उपयोग करता है ... इसलिए वे विस्तार कर रहे हैं, बड़ा और अधिक फैल रहा है । - जैसा कि यह कभी था - जैसे ही एचडब्ल्यू तेज हो जाता है, एसडब्ल्यू को बढ़ावा को भिगोने के लिए अधिक जटिल हो जाता है।
अस्तरा

@ सही सच है, लेकिन लाइब्रेरी उपयोग में वृद्धि हार्डडिस्क और मेमोरी स्पीड में वृद्धि जितनी तेज नहीं है।
w00t
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.