पूल (कंप्यूटर विज्ञान): Difference between revisions

From Vigyanwiki
No edit summary
No edit summary
Line 4: Line 4:
[[कंप्यूटर विज्ञान|कंप्यूटर]] विज्ञान में, पूल [[मेमोरी]] में रखे जाने वाले [[संसाधनों]] का कलेक्शन होता है, जो प्रयोग के समय प्राप्त की गई मेमोरी और बाद में रिलीज की गई मेमोरी के उपयोग के लिए तैयार रखा जाता है। इस संदर्भ में, ''संसाधन'' प्रणाली  संसाधनों जैसे [[फ़ाइल हैंडल]] को संदर्भित कर सकते हैं, जो किसी प्रक्रिया के लिए बाहरी या [[ऑब्जेक्ट (कंप्यूटिंग)]] जैसे आंतरिक संसाधन हैं।  इस प्रकार पूल [[क्लाइंट (कंप्यूटिंग)]] पूल से संसाधन का अनुरोध करता है और लौटाए गए संसाधन पर वांछित संचालन करता है। जब ग्राहक संसाधन का उपयोग पूरा कर लेता है, तो इसे प्रयुक्त करने और खोने के अतिरिक्त पूल में वापस कर देता है।
[[कंप्यूटर विज्ञान|कंप्यूटर]] विज्ञान में, पूल [[मेमोरी]] में रखे जाने वाले [[संसाधनों]] का कलेक्शन होता है, जो प्रयोग के समय प्राप्त की गई मेमोरी और बाद में रिलीज की गई मेमोरी के उपयोग के लिए तैयार रखा जाता है। इस संदर्भ में, ''संसाधन'' प्रणाली  संसाधनों जैसे [[फ़ाइल हैंडल]] को संदर्भित कर सकते हैं, जो किसी प्रक्रिया के लिए बाहरी या [[ऑब्जेक्ट (कंप्यूटिंग)]] जैसे आंतरिक संसाधन हैं।  इस प्रकार पूल [[क्लाइंट (कंप्यूटिंग)]] पूल से संसाधन का अनुरोध करता है और लौटाए गए संसाधन पर वांछित संचालन करता है। जब ग्राहक संसाधन का उपयोग पूरा कर लेता है, तो इसे प्रयुक्त करने और खोने के अतिरिक्त पूल में वापस कर देता है।


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


पूल के विशेष मामले [[कनेक्शन पूल]], [[ धागा पूल ]] और [[ स्मृति पूल | मेमोरी  पूल]] हैं।
पूल के विशेष स्थितिया [[कनेक्शन पूल]], [[ धागा पूल | थ्रेड पूल]] और [[ स्मृति पूल | मेमोरी  पूल]] के रूप में होती है।


==ऑब्जेक्ट पूल ==
==ऑब्जेक्ट पूल ==
{{Main|Object pool pattern}}
{{Main|ऑब्जेक्ट पूल पैटर्न}}


पूल का उपयोग [[वस्तु निर्माण]] लिए भी किया जा सकता है, जिस संदर्भ में पूल [[वस्तु-उन्मुख भाषा]] में पूल को लागू करने के लिए एक [[डिज़ाइन पैटर्न]] को संदर्भित करता है, जैसे [[ऑब्जेक्ट पूल पैटर्न]] में। ऑब्जेक्ट स्वयं कोई बाहरी संसाधन नहीं रखते हैं और केवल मेमोरी पर कब्जा करते हैं, हालांकि पहले से बनाई गई ऑब्जेक्ट ऑब्जेक्ट निर्माण पर आवश्यक मेमोरी आवंटन से बचती है। ऑब्जेक्ट पूल तब उपयोगी होते हैं जब ऑब्जेक्ट निर्माण की लागत अधिक होती है, लेकिन कुछ स्थितियों में यह सरल ऑब्जेक्ट पूलिंग कुशल नहीं हो सकती है और वास्तव में प्रदर्शन को कम कर सकती है।<ref>{{cite web
पूल का उपयोग [[वस्तु निर्माण]] लिए भी किया जा सकता है, जिस संदर्भ में पूल [[वस्तु-उन्मुख भाषा]] में पूल को लागू करने के लिए एक [[डिज़ाइन पैटर्न]] को संदर्भित करता है, जैसे [[ऑब्जेक्ट पूल पैटर्न]] में। ऑब्जेक्ट स्वयं कोई बाहरी संसाधन नहीं रखते हैं और केवल मेमोरी पर कब्जा करते हैं, हालांकि पहले से बनाई गई ऑब्जेक्ट ऑब्जेक्ट निर्माण पर आवश्यक मेमोरी एलोकेशन  से बचती है। ऑब्जेक्ट पूल तब उपयोगी होते हैं जब ऑब्जेक्ट निर्माण की लागत अधिक होती है, लेकिन कुछ स्थितियों में यह सरल ऑब्जेक्ट पूलिंग कुशल नहीं हो सकती है और वास्तव में प्रदर्शन को कम कर सकती है।<ref>{{cite web
  | url = https://www.ibm.com/developerworks/library/j-jtp09275/index.html
  | url = https://www.ibm.com/developerworks/library/j-jtp09275/index.html
  | archiveurl = https://web.archive.org/web/20111229023158/http://www.ibm.com/developerworks/java/library/j-jtp09275/index.html
  | archiveurl = https://web.archive.org/web/20111229023158/http://www.ibm.com/developerworks/java/library/j-jtp09275/index.html

Revision as of 11:22, 13 August 2023

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

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

पूल के विशेष स्थितिया कनेक्शन पूल, थ्रेड पूल और मेमोरी पूल के रूप में होती है।

ऑब्जेक्ट पूल

पूल का उपयोग वस्तु निर्माण लिए भी किया जा सकता है, जिस संदर्भ में पूल वस्तु-उन्मुख भाषा में पूल को लागू करने के लिए एक डिज़ाइन पैटर्न को संदर्भित करता है, जैसे ऑब्जेक्ट पूल पैटर्न में। ऑब्जेक्ट स्वयं कोई बाहरी संसाधन नहीं रखते हैं और केवल मेमोरी पर कब्जा करते हैं, हालांकि पहले से बनाई गई ऑब्जेक्ट ऑब्जेक्ट निर्माण पर आवश्यक मेमोरी एलोकेशन से बचती है। ऑब्जेक्ट पूल तब उपयोगी होते हैं जब ऑब्जेक्ट निर्माण की लागत अधिक होती है, लेकिन कुछ स्थितियों में यह सरल ऑब्जेक्ट पूलिंग कुशल नहीं हो सकती है और वास्तव में प्रदर्शन को कम कर सकती है।[1]


संदर्भ

  1. "Java theory and practice: Urban performance legends, revisited". ibm.com. 2005-09-27. Archived from the original on 2011-12-29. Retrieved 2013-10-31.