मैं क्या के बीच वास्तविक अंतर जानना चाहते हैं caching
और memoization
है।
जैसा कि मैं इसे देखता हूं, दोनों को इसे संग्रहीत करके डेटा प्राप्त करने के लिए बार-बार फ़ंक्शन कॉल से बचना शामिल है ।
दोनों के बीच मुख्य अंतर क्या है?
मैं क्या के बीच वास्तविक अंतर जानना चाहते हैं caching
और memoization
है।
जैसा कि मैं इसे देखता हूं, दोनों को इसे संग्रहीत करके डेटा प्राप्त करने के लिए बार-बार फ़ंक्शन कॉल से बचना शामिल है ।
दोनों के बीच मुख्य अंतर क्या है?
जवाबों:
संस्मरण कैशिंग का एक विशिष्ट रूप है जिसमें इसके मापदंडों के आधार पर एक फ़ंक्शन के रिटर्न मूल्य को कैशिंग करना शामिल है ।
कैशिंग एक अधिक सामान्य शब्द है; उदाहरण के लिए, HTTP कैशिंग कैशिंग है, लेकिन संस्मरण नहीं।
विकिपीडिया कहता है :
हालांकि कैशिंग से संबंधित, संस्मरण इस अनुकूलन के एक विशिष्ट मामले को संदर्भित करता है, इसे कैशिंग के रूपों जैसे बफरिंग या पृष्ठ प्रतिस्थापन से अलग करता है।
If-Match
और समाप्ति के कारण। संस्मरण केवल शुद्ध कार्य के लिए समझ में आता है, जो HTTP शायद ही कभी हो।
जैसा कि मैंने उन्हें इस्तेमाल करते हुए देखा है, "संस्मरण" "एक नियतात्मक कार्य के परिणाम को रोकना" है जिसे किसी भी समय एक ही फ़ंक्शन और इनपुट को देखते हुए पुन: प्रस्तुत किया जा सकता है।
"कैशिंग" में मूल रूप से किसी भी आउटपुट-बफ़रिंग रणनीति शामिल है, चाहे किसी निश्चित समय पर स्रोत मूल्य प्रतिलिपि प्रस्तुत करने योग्य हो या नहीं। वास्तव में, कैशिंग का उपयोग इनपुट बफरिंग रणनीतियों को संदर्भित करने के लिए भी किया जाता है , जैसे कि डिस्क या मेमोरी पर राइट-कैश। तो यह एक बहुत अधिक सामान्य शब्द है।
मुझे लगता है कि टर्म कैशिंग का उपयोग आमतौर पर तब किया जाता है जब आप IO परिचालनों के परिणामों को संग्रहीत करते हैं, या मूल रूप से कोई भी डेटा जो आपके पास बाहर से आ रहा है (फाइल, नेटवर्क, डीबी क्वेरी)। शब्द संस्मरण आमतौर पर आपके स्वयं के संगणना के परिणामों पर लागू होता है, उदाहरण के लिए गतिशील प्रोग्रामिंग के संदर्भ में।
संस्मरण एक नियतात्मक कार्य के परिणाम को कैशिंग का एक विशेष रूप है। इसका मतलब यह है कि फ़ंक्शन के बाहर के परिणाम को रोकना संस्मरण नहीं है क्योंकि फ़ंक्शन को नए परिणाम की गणना करते समय कैश को म्यूट करना होगा (पहले से कैश में नहीं) इसलिए यह अब (शुद्ध) फ़ंक्शन नहीं होगा। संस्मरण का तात्पर्य कैश को एक अतिरिक्त तर्क (एक सहायक फ़ंक्शन में) के रूप में पारित करने से है। मेमोइज़ेशन उन फ़ंक्शंस को ऑप्टिमाइज़ करेगा, जिन्हें किसी एकल एक्सेस के लिए कई बार मानों की गणना करने की आवश्यकता होती है। कैशिंग उन कार्यों का अनुकूलन करेगा जो समान मापदंडों के साथ कई बार कॉल किए जाते हैं। दूसरे शब्दों में, संस्मरण पहली पहुंच का अनुकूलन करेगा कि क्या कैशिंग केवल आवर्तक पहुंच का अनुकूलन करेगा।