एक बड़े कैश के साथ मुख्य समस्या पूर्ण जीसी समय है। आपको एक विचार देने के लिए यह प्रति सेकंड 1 सेकंड हो सकता है (यह एप्लिकेशन से एप्लिकेशन में भिन्न होता है) यदि आपके पास 20 जीबी कैश है और आपका एप्लिकेशन 20 सेकंड के लिए रुकता है तो हर बार स्वीकार्य होता है?
प्रत्यक्ष और मेमोरी मैप की गई फ़ाइलों के प्रशंसक के रूप में मुझे लगता है कि मैं डेटा को ढेर से बाहर रखने के लिए कहां नहीं रखूंगा, और सादगी के लिए केवल ढेर का उपयोग करूंगा। ;) मेमोरी मैप की गई फाइलों के आकार के बावजूद पूर्ण जीसी समय पर कोई प्रभाव नहीं पड़ता है।
मेमोरी मैप किए गए फ़ाइल का उपयोग करने के फायदों में से एक यह है कि यह आपकी भौतिक स्मृति से काफी बड़ा हो सकता है और अभी भी उचित रूप से अच्छा प्रदर्शन कर सकता है। यह ओएस को यह निर्धारित करने के लिए छोड़ देता है कि कौन से भाग स्मृति में होना चाहिए और डिस्क पर फ़्लश करने की आवश्यकता क्या है।
बीटीडब्ल्यू: एक तेज एसएसडी होने से भी मदद मिलती है;) बड़ी ड्राइव भी तेजी से होती है। आईओपी के लिए जांचें जो वे कर सकते हैं।
इस उदाहरण में, मैं 16 जीबी वाली मशीन पर मैप किए गए 8 टीबी फ़ाइल मेमोरी तैयार करता हूं। http://vanillajava.blogspot.com/2011/12/using-memory-mapped-file-for-huge.html
नोट, यह 80 जीबी फ़ाइल उदाहरण में बेहतर प्रदर्शन करता है, 8 टीबी मारने की संभावना है। ;)
स्रोत
2012-01-20 07:52:18
आपके प्रश्न का उत्तर कैश आकार की तुलना में कैश उपयोग विशेषताओं पर अधिक निर्भर करता है। उदाहरण के लिए, पढ़ने/लिखने के अनुपात, टीटीएल, आपके द्वारा संग्रहीत वस्तुओं के आकार, ऑब्जेक्ट्स की संख्या जिन्हें आप स्टोर कर सकते हैं। इसके अलावा, आपका प्रश्न एक सुंदर अस्पष्ट सवाल पूछ रहा है। आप "बहुत लंबा" क्या मानेंगे? या "प्राइम टाइम के लिए तैयार?" इससे पहले कि आप वास्तव में किसी भी कैशिंग समाधान का मूल्यांकन कर सकें, आपको यह जानना होगा कि आपको किस प्रकार की एसएलए की आवश्यकता है। एमएस में अधिकतम प्रतिक्रिया समय, और एसएलए हिट प्रतिशत। – allingeek