क्रोम मेमोरी कैश बनाम डिस्क कैश


96

मुझे क्रोम मेमोरी कैश बनाम डिस्क कैश में दिलचस्पी है? मैं वेबपैक, कॉमन चंक्स प्लगइन का उपयोग करता हूं और चंकश के साथ अपनी सभी फाइलें उत्पन्न करता हूं।

मेमोरी डिस्क कैश से कैसे भिन्न होती है। जब मैं अपने पृष्ठ को पुनः लोड करता हूं तो कुछ फाइलें मेमोरी कैश से भरी जाती हैं और कुछ डिस्क कैश से (बंडल और जेएस और मेमोरी कैश से और डिस्क कैश से सीएसएस)। कभी-कभी यह अलग है। क्या हम उस पर नियंत्रण कर सकते हैं, चुन सकते हैं कि क्या कहाँ से भरा हुआ है मेमोरी कैश डिस्क कैश की तुलना में तेज़ लगता है।


1
हाय इगोर, यह webpack के साथ लोड हो रहा मुद्दों का कारण है? आपने इसे कैसे हल किया?
Rejoy

1
कोई मुद्दा नहीं थे। यह सिर्फ एक ब्राउज़र कैश कार्यक्षमता है जो वेबपैक बंडल फ़ाइलों को कैश करता है।
इगोर-वुक

हाय इगोर, मैंने इसे एक मुद्दा देखा है जब कुछ बंडल फाइलें डिस्क से और कुछ मेमोरी से लोड की जाती हैं। यह JSONP त्रुटि फेंकता है, जब ऐसा होता है। यह केवल दुर्लभ मामलों में होता है।
४३

जवाबों:


74

उनके नामों की तरह कहा:

"मेमोरी कैश" मेमोरी (रैम) से संसाधनों को स्टोर और लोड करता है। तो यह बहुत तेज है, लेकिन यह न के बराबर है। जब तक आप ब्राउज़र बंद नहीं करते तब तक सामग्री उपलब्ध है।

"डिस्क कैश" लगातार है। कैश्ड संसाधनों को संग्रहीत और डिस्क से लोड किया जाता है।

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


4
वैसे मुझे नहीं पता था कि यह इतना आसान है।
फैजान अनवर अली रूपानी

27
ब्राउज़र कैसे तय करता है कि कौन सी संपत्ति मेमोरी कैश बनाम डिस्क कैश में स्टोर की जाए?
छरवे

10
क्या हम कॉन्फ़िगर कर सकते हैं कि मेमोरी कैश में क्या कैश होना चाहिए?
इगोर-वुक

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

@ राफेलएंड्रड ध्यान रखें, कि कोणीय कई वातावरण (src / वातावरण / *। Ts में) प्रदान करता है। environment.prod.ts आपके productiv बिल्ड वातावरण को परिभाषित करता है जहाँ environment.ts आपके स्थानीय विकास को परिभाषित करता है। स्थानीय विकास में, आप ज्यादातर बिना कैश्ड फ़ाइल चाहते हैं ताकि आपके स्थानीय परिवर्तन हमेशा आपके ऐप पर लागू हों।
रूवेन

14

क्रोम अमूर्तता के कई स्तरों पर कैश को लागू करता है। कोर में HTTP (ब्राउज़र) कैश है - अन्य कैशिंग तंत्रों के लिए एक बैकएंड। आम तौर पर कैश में विभाजित किया जा सकता है:

  • HTTP कैश
  • सेवा कार्यकर्ता कैश
  • पलक झपकते कैश

HTTP कैश

नेटवर्क पर किया गया हर अनुरोध RFC का पालन करने वाले HTTP कैश द्वारा अनुमानित है । जब पहली बार कैश के लिए अनुरोध किया जाता है, तो ओवरराइट किया जाता है। मूल url द्वारा संसाधन कुंजीबद्ध हैं।

सेवा कार्यकर्ता कैश

नेटवर्क कनेक्शन विफलताओं को इनायत करने के लिए आप सेवा कार्यकर्ताओं का उपयोग कर सकते हैं । कैश और कैश स्टोरेज को फिर से डिस्क से लिया जाएगा।

पलक झपकना

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

मेमोरी कैश में मजबूर करना

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

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