प्रीलोड का उपयोग करने की कमियां? यह डिफ़ॉल्ट रूप से शामिल क्यों नहीं है?


110

मैं जानना चाहूंगा कि उपयोग करने की कमियां क्या हैं preload? अगर कोई नकारात्मक पहलू नहीं preloadहोगा, तो डिफ़ॉल्ट रूप से सक्षम किया जाएगा, इसलिए मुझे लगता है कि कुछ हैं।

ठीक है आपको थोड़ी अधिक रैम की आवश्यकता है, लेकिन अधिकांश लोगों के पास अधिक रैम है तो उबंटू की आवश्यकता है - तो उपयोग करने की डाउनसाइड क्या हैं preload?


6
आपके उपयोगी प्रश्न के लिए धन्यवाद। मैं जानना चाहता हूं, क्या यह एक मिथक है?
सईद ज़ारिनफ़ाम

1
CPU उपयोग और बैटरी कुछ के लिए एक खामी हो सकती है ... Bugs.launchpad.net/ubuntu/+source/preload/+bug/481861
Mateo

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

1
बस एक अनुमान: डिफ़ॉल्ट रूप से इसे शामिल न करने का एक कारण यह है कि यह सभी प्रणालियों पर प्रयोग करने योग्य नहीं है (इसकी हार्डवेयर आवश्यकताएं मानक आवश्यकताओं से भिन्न हो सकती हैं)।
don.joey

2
brainstorm.ubuntu.com/idea/1122 यहां एक पोस्ट से पता चलता है कि यह "यह रूट विशेषाधिकार के साथ एक डेमन के रूप में चलता है।" जो एक सुरक्षा मुद्दा हो सकता है, यह भी विचार मंथन है कि यह डिफॉल्ट इंक्लूजन मंथन चाहता है ।ubuntu.com
idea/

जवाबों:


65

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

सबसे पहले, Google Chrome। अब एक ब्राउज़र प्रति बूट केवल एक बार खोला जाता है, शायद दो बार (मेरे लिए, मैं एक वेब डेवलपर हूं)। Chrome और उससे संबंधित लाइब्रेरी स्मृति में रहती हैं क्योंकि मैं हमेशा इसका उपयोग कर रहा हूं। यहां तक ​​कि जब मैं सभी क्रोम विंडो को बंद कर देता हूं तब भी यह पृष्ठभूमि में होता है। इस प्रकार क्रोम की प्रीलोड कॉपी रखने के लिए समर्पित सभी रैम कुल और बिलकुल बेकार है। यह कभी भी (या शायद ही कभी) अनलोड नहीं होता है। औसत उपयोगकर्ता के लिए यह बड़ी संख्या में अनुप्रयोगों के लिए सच है। एक कार्यालय उपयोगकर्ता लगभग हमेशा अपने ईमेल ऐप को खुला रखेगा। इसलिए स्टार्टअप समय में छोटी बचत पूरी तरह से बर्बाद हो जाती है क्योंकि वे दिन में केवल एक बार अपना ईमेल ऐप खोलते हैं और इसे खुला छोड़ देते हैं।

दूसरा उदाहरण रेक है। एक रूबी डेवलपर के रूप में जो परीक्षण में विश्वास करता है मैं रेक को एक TON चलाता हूं। रेक चलता है, कुछ सेकंड के लिए निष्पादित करता है - मिनट फिर बाहर निकलता है। प्रीलोड मुझे अपने दैनिक कार्य को गति देने में मदद करता है क्योंकि यह समय से पहले रेक और इसके आवश्यक पुस्तकालयों (जो बहुत व्यापक हो सकता है) को लोड करता है। तो रेक के चलने के लिए बहुत सारे स्टार्ट और स्टॉप हैं। कुछ घंटों के अंतराल पर रेक के 400 या 500 लॉन्च को गति देने के लिए इस्तेमाल किया गया अतिरिक्त राम पूरी तरह से इसके लायक है।

तो इसका कारण डिफ़ॉल्ट रूप से सक्षम नहीं है क्योंकि इसकी क्षमता वास्तव में प्रदर्शन को बेहतर बनाने की क्षमता पर निर्भर करती है कि आप अपने सिस्टम का उपयोग कैसे करते हैं। कुछ लोगों के लिए यह नकारात्मक होगा और दूसरों के लिए सकारात्मक।

अंत में, प्रीलोड होने पर, भले ही आप इसका उपयोग न कर रहे हों, रैम का उपभोग करता है। इसलिए यदि आप बार-बार एप्लिकेशन लॉन्च नहीं कर रहे हैं, तो आप वास्तव में अपने संपूर्ण सिस्टम को अन्य प्रकार के कैशिंग के लिए उपलब्ध नहीं होने के द्वारा आंशिक रूप से धीमा बना सकते हैं। याद रखें, भले ही आपके पास 32 गीगाहर्ट्ज का राम लिनक्स हो, इसका ज्यादा से ज्यादा इस्तेमाल करने की कोशिश करेंगे क्योंकि यह आपकी बातचीत को तेज करने के लिए डेटा को कैश कर सकता है। प्रीलोड का उपयोग करके आप उस मुफ्त मेमोरी को कुछ कम कर देते हैं। यहां तक ​​कि अगर यह सिर्फ एक छोटा सा है, तो 2 सेकंड जो आपने 1 बार क्रोम लॉन्च करने से बचाए थे, वह उस महीने में 60 सेकंड तक खर्च कर सकता है जब तक वह चालू रहता है।


1
इसके अलावा, प्रीलोड को धीमा करके बूटिंग का उपयोग करें। जितना अधिक सामान प्रीलोडेड होता है, आपके सिस्टम को उठने और चलने में उतना ही अधिक समय लगता है। अब, कल्पना करें कि आप जो कुछ करना चाहते हैं, वह बूट करना है, मेमो पर एक वाक्य लिखना है, और ठीक बाद बंद करना है। आप मेमो लिखने में सक्षम होने की प्रतीक्षा कर रहे हैं, क्योंकि आपका सिस्टम चीजों को उस कार्य से असंबंधित होने की संभावना है। इस प्रकार, एक तरह से, प्रीलोडिंग (सामान्य रूप में) एक दोधारी तलवार है।
F-3000

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

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

1
ऊपर दिए गए coteyr और @ hikikhan77 को याद करते हुए, क्या आप सहमत हैं कि प्रीलोड पुराने, कम रैम (स्टार्टअप पर ~ 800 एमबी मुक्त) डेस्कटॉप बक्से पर कथित गति को बेहतर बनाने में मदद करने के लिए एक काउंटर-प्रभावी तरीका है। FYI करें ऐसे रीफर्बिश्ड बॉक्स पर प्रीलोड को सक्रिय करने से कर्नेल वर्चुअल मेमोरी मैनेजर को थोड़े इंप्रूवमेंट का काम मिलेगा?
tuk0z

2
@lliseil अगर वह 800 एमबी वास्तव में बिना सेंसर की रैम है, तो प्रीलोड मदद कर सकता है ... लेकिन यह शायद अधिक रैम के साथ बेहतर काम करता है। और बदले में इसका मतलब है कि: प्रीलोड स्मृति-भूख अनुप्रयोगों के साथ संघर्ष करेगा जो आप बाद में शुरू कर सकते हैं। यहां कम स्वैच्छिकता आवश्यक हो सकती है जो तब संभवत: बेकार लोड करती है जैसे ही आप बहुत अधिक रैम का उपयोग करने जा रहे हैं।
हर्किहन hur hur

21

5 सितंबर, 2012 को बाउंटी सईद ज़ारिनफाम द्वारा पूछा गया प्रश्न :

हाय सब, मैं जानना चाहता हूँ, क्या यह एक मिथक है? क्या [प्रीलोड] वास्तव में मेरे प्रदर्शन में सुधार करता है? इसका उपयोग करने की कमियां क्या हैं? मेरे पास इस विनिर्देश के साथ एक लैपटॉप है (कोर i5 सीपीयू, 4 जीबी रैम, 128 जीबी एसएसडी हार्ड)। बहुत बहुत धन्यवाद।

  • यदि आपके पास SSD है तो प्रीलोड की कोई वास्तविक आवश्यकता नहीं है
    • ऐसा इसलिए है क्योंकि SSDs हार्ड डिस्क की तुलना में बहुत तेज़ी से यादृच्छिक अभिगम समय प्रदान करते हैं, इसलिए मेमोरी में "प्री-लोडिंग" बायनेरिज़ / निर्भरता एक बेकार है, IMO
    • मूल नकारात्मक तो यह है कि प्रीलोड एक मूर्त लाभ प्रदान किए बिना अतिरिक्त मेमोरी का "उपयोग" कर रहा है।

20
यह ओपी के प्रश्न को कवर नहीं करता है क्योंकि प्रीलोड का उपयोग करने में कोई कमियां हैं? दूसरा, आपने एक राय बनाई है, "पूर्व-लोडिंग" के बारे में एक बयान दिया है और फिर समीकरण में "एसएसडी" पेश किया है। किस बिंदु पर आप वास्तव में सवाल का जवाब देने जा रहे थे?
21

12

प्रीलोड एक "एडाप्टिव रीडहेड डेमॉन" है जो आपके सिस्टम की पृष्ठभूमि में चलता है, और यह देखता है कि आप किन कार्यक्रमों का सबसे अधिक उपयोग करते हैं, उन्हें एप्लिकेशन लोड समय को गति देने के लिए कैशिंग करते हैं। प्रीलोड का उपयोग करके, आप अप्रयुक्त रैम को अच्छे काम में लगा सकते हैं, और अपने डेस्कटॉप सिस्टम के समग्र प्रदर्शन में सुधार कर सकते हैं।

एकदम से प्रदर्शन में भारी बदलाव देखने की उम्मीद न करें। इसके अलावा, यदि आप केवल एप्लिकेशन को दोहराव से खोल रहे हैं / बंद कर रहे हैं, तो आपका कंप्यूटर उन फाइलों को वैसे भी कैश में स्टोर करेगा (इसे "वार्म" लोड कहा जाता है), इसलिए आपको वहां गति में कोई अंतर नहीं दिखेगा। हालाँकि, आप एक गति सुधार देखेंगे, उदाहरण के लिए, आप एक कार्यक्रम का उपयोग रुक-रुक कर करते हैं; ये कार्यक्रम प्रीलोड के बिना तेजी से शुरू होंगे।

प्रीलोड आवेदन समय में एक महान सुधार प्रदान कर सकता है; चूंकि अधिकांश आधुनिक मशीनों में स्पेयर करने के लिए मेमोरी का एक अच्छा सौदा है, इसलिए प्रीलोड इस रैम को अच्छे उपयोग के लिए रखता है। 1

अब कहा जा रहा है, ऐसा लगता है कि प्रीलोड एक महान उपयोगिता है, और यह हो सकता है।

मुझे लगता है कि इसका कारण ओएस के साथ नहीं भरा हुआ है, ऐसा इसलिए है क्योंकि उपयोगकर्ता को यह जानना है कि वास्तव में वहां क्या कर रहे हैं, और इसका उपयोग करने में सक्षम होने के लिए पर्याप्त अनुभव है और सिस्टम के पास पर्याप्त रैम होना चाहिए।

अधिक तकनीकी पहलू पर, हार्ड डिस्क से रैम तक डेटा को स्थानांतरित करके प्रीलोड काम करता है, जो कि स्लीप मोड में जाने के लिए सबसे हार्ड डिस्क का उपयोग करता है यदि उपयोग नहीं किया जाता है, और फिर ज़रूरत पड़ने पर वापस स्पिन करना पड़ता है। इसलिए ड्राइव को ऊपर / नीचे स्पिन करने से लोड / अनलोड साइकिल काउंट और पावर-ऑन टाइम काउंट में वृद्धि होगी, और इससे ड्राइव का जीवन छोटा हो जाएगा।

हमने एक मार्कोव-आधारित अनुकूली प्रीफ़ेचिंग योजना को डिज़ाइन किया और लागू किया, जो अनुप्रयोग-स्तर की भविष्यवाणियों पर काम करती है। इसके अलावा, प्रीलोड को यूजरस्पेस में लागू किया जाता है और यह किसी भी मायने में एप्लिकेशन रन-टाइम वातावरण को नहीं बदलता है। जहां तक ​​हम जानते हैं, इस स्तर पर system ले-सिस्टम प्रीफेटिंग के साथ प्रयोग करना is rst कार्य है।

हमारे प्रयोगात्मक परिणाम ठंड के कैश की तुलना में एप्लिकेशन स्टार्ट-अप समय पर आशाजनक सुधार दिखाते हैं, और एक भोली भविष्यवाणी एल्गोरिथ्म की तुलना में एक सभ्य हिट दर।

हालांकि, उपयोगकर्ता-अंतरिक्ष में होने से स्टार्टअप-टाइम समस्या के लिए एक प्रतिस्पर्धी समाधान को प्रीलोड करने में बड़ी बाधाएं आती हैं। विशेष रूप से, अनुप्रयोगों के बारे में पूरी जानकारी न होना I / O अनुरोध, और पेज-कैश सबसिस्टम के साथ मजबूत संचार चैनलों की कमी प्रीलोड के ई ff एक्टिविटी को बहुत कम कर देता है, विशेष रूप से तंग स्मृति स्थितियों के तहत।

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

अंत में, हम कर्नेल में कैश सबसिस्टम के साथ एकीकृत प्रीफ़ेचर में वापस आने के बिना बूट-टाइम, लॉगिन-टाइम और एप्लिकेशन स्टार्टअप-टाइम को बेहतर बनाने के लिए सिस्टम डेवलपर्स के लिए सिफारिशों के एक सेट के साथ आते हैं। बेशक, कर्नेल में एक-ले-आधारित प्रीफ़ेचर उस के शीर्ष पर सुधार कर सकता है। 2

1 स्रोत: टेकथ्रोब

2 स्रोत: प्रीलोड - बेहदाद एस्फाहबोड द्वारा एक अनुकूली प्रीफेचिंग डेमॉन - मास्टर ऑफ साइंस की डिग्री के लिए आवश्यकताओं के अनुरूप एक थीसिस - कंप्यूटर विज्ञान के स्नातक विभाग - टोरंटो विश्वविद्यालय के कॉपीराइट (सी) 2006 में बेहदाद एशफबॉड।


1
आपके उत्तर के लिए धन्यवाद, मिच। ये मेरे भी विचार थे। खासकर लैपटॉप पर प्रीलोड की समस्या हो सकती है। लेकिन फिर भी, मैं एक आधिकारिक स्रोत / चर्चा खोजना पसंद करूंगा कि उबंटू टीम ने शिपिंग प्रीलोड के खिलाफ निर्णय क्यों लिया।
Glutanimate

9

कमियां? कोई नहीं है!

उपयोगकर्ता द्वारा प्रदर्शन खोलने के अनुप्रयोगों में वृद्धि। मैंने इसे वर्षों तक अपने सिस्टम पर और साथ ही "रीड-फॉरवर्ड" में इस्तेमाल किया है और इसमें कोई समस्या नहीं है। बग पेज प्रीलोड के लिए या तो किसी भी कमियां यह नहीं दर्शाती है।

प्रीलोड कि आवेदनों पर नज़र रखता है उन चलाने के लिए, और इस डेटा का विश्लेषण करके, भविष्यवाणी की है कि कौन से एप्लिकेशन उपयोगकर्ताओं चला सकते हैं, और तेजी से स्टार्टअप समय के लिए स्मृति में उन बाइनरी और उनके निर्भरता को हासिल करेगा।

यह बूट समय को थोड़ा बढ़ाता है, लेकिन अनुप्रयोगों की गति में कमी का समय इस छोटे से मुद्दे से अधिक है।

लेख देखें

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

sudo apt-get install preload

परिणाम:

सामान्य और प्रीलोड प्रारंभ के बीच अंतर दिखाने वाला ग्राफ़

संदर्भ


3
मुझे पता है कि यह क्या खुराक है और मैंने कई 'प्रीलोड हाउटोस' पढ़े, लेकिन कहीं न कहीं मैं कमियों के बारे में कुछ पढ़ सकता था। अगर कोई ड्रॉ बैक नहीं होगा तो इसे कई लिनक्स डिस्ट्रीब्यूशन के साथ डिफ़ॉल्ट रूप से शिप किया जाएगा - लेकिन जहाँ तक मुझे पता है - ऐसा नहीं है।
Paradiesstaub

1
प्रदर्शन कम नहीं हुआ है , लेकिन बढ़ा है । यह प्रीलोड का उपयोग करने का पूरा बिंदु है। शायद यह सिर्फ एक टाइपो है।
मार्को

2
आपका आरेख बहुत अच्छा लग रहा है, लेकिन इसमें महत्वपूर्ण जानकारी का अभाव है। यह सेल्स मैन के पावरपॉइंट प्रेजेंटेशन में 100% फिट होगा, लेकिन यह 'खराब आँकड़ों' का एक उदाहरण है। ये आंकड़े कहां से आए हैं? उन्हें रिकॉर्ड करने के लिए किस प्रोटोकॉल का उपयोग किया गया था? क्या यह एक सिंगल स्नैपशॉट है? नमूने में कितनी मशीनें शामिल थीं? हार्डवेयर क्या था? प्रीलोड प्रोग्राम कैसे कॉन्फ़िगर किया गया था?

1
@Ringtail: आप सही कह रहे हैं। आप उस चित्र के लेखक नहीं हैं। लेकिन अगर आप लेखों के सभी लिंक पर क्लिक करते हैं, तो आप एक Techthrob.com पेज पर आते हैं, जिसे प्रोग्राम के लेखक द्वारा लिखे गए लेख को होस्ट करना चाहिए। लेकिन वह पेज जा चुका है। तो केवल स्रोत है: लेखक की थीसिस।

2
अगर किसी सूक्ति टर्मिनल को शुरू होने में 2 सेकंड से अधिक समय लगता है तो हार्डवेयर को अपग्रेड करना चाहिए ...
पीटर और भेड़िया
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.