2012-05-31 8 views
5

में maxElementsInMemory में बहुत बड़ा प्रदर्शन होता है, बस यह जानना चाहता था कि maxElementsInMemory को वास्तव में उपयोग किए जाने से कहीं अधिक प्रदर्शन करने के लिए प्रदर्शन प्रभाव था या नहीं? उदाहरण के लिए, 10,000 की एक अधिकतम और केवल 100क्या eEcache कॉन्फ़िगरेशन

ehcache.xml

<defaultCache 
    eternal="false" 
    overflowToDisk="false" 
    maxElementsInMemory="10000" 
    timeToIdleSeconds="7200" 
    timeToLiveSeconds="0"/> 

संदर्भ का उपयोग कर के लिए: मैं हाइबरनेट साथ ehcache उपयोग कर रहा हूँ और मैं एक तालिका (सभी संस्थाओं) के सभी रिकॉर्ड कैश हो करना चाहते हैं। एक ग्राहक से दूसरे में, उस तालिका में रिकॉर्ड्स की संख्या भिन्न होती है, इसलिए सटीक अधिकतम सेट करना मुश्किल होता है।

धन्यवाद!

मार्क

उत्तर

3

नहीं, कोई नहीं है। यह सिर्फ अधिकतम मान है। यदि आपके कैश में केवल 100 आइटम हैं, तो आप 100 तत्वों वाले मानचित्र की लागत का भुगतान करेंगे। ऊपरी सीमा में यहां कुछ भी नहीं है।

आप सुरक्षित रूप से बहुत अधिक सीमा का उपयोग कर सकते हैं (इसके नीचे यह एक साधारण ConcurrentHashMap है) हालांकि इस तरह की पसंद को उचित ठहराना मुश्किल है।

+0

राइट टैक्स। लेकिन क्या इस अधिकतम का उपयोग ConcurrentHashMap की प्रारंभिक क्षमता निर्धारित करने के लिए नहीं किया जाएगा? इसका असर होगा, नहीं? – Marc

+0

@Marc: EhCache कोड बेस को तुरंत खोजना साबित करता है कि यह मानचित्र को प्रारंभ करने के लिए अधिकतम मान का उपयोग नहीं करता है। और यहां तक ​​कि अगर यह था - बड़ा 'प्रारंभिक क्षमता' प्रदर्शन को नुकसान नहीं पहुंचाएगा, यह केवल अधिक स्मृति का उपयोग करेगा (जो सभी के बाद प्रदर्शन को नुकसान पहुंचाएगा, लेकिन आपको मेरा बिंदु मिल जाएगा)। –

संबंधित मुद्दे