गुवा लाइब्रेरी में, मैं उलझन में हूं कि क्यों Cache.asMap()
Cache.size()
के साथ संगत नहीं है, जब तक कि Cache.cleanUp()
नहीं कहा जाता है।कैश.एएसएपी() कैश.size() के साथ संगत क्यों नहीं है?
Cache<Object, Object> cache = CacheBuilder.newBuilder()
.expireAfterWrite(1, TimeUnit.SECONDS)
.build();
cache.get(...);
...
//After some seconds, all entries are expired.
//cache.asMap() is EMPTY Map, but cache.size() != 0
तो मेरे सवाल: यह बग कि Cache.asMap()
Cache.size()
के अनुरूप नहीं है है? हालांकि मैं नोटिस Cache.size()
की जावाडोक है:
/**
* Returns the **approximate** number of entries in this cache.
*/
मैं सिर्फ अनुमान लगा सकते हैं कि यह एक समवर्ती पर्यावरण से संबंधित है। और Cache.cleanUp()
क्या करता है वास्तव में?
धन्यवाद, चार्ल्स! मैं स्रोत कोड के माध्यम से मोटे तौर पर चला गया, 'आकार()' बस सेगमेंट की गिनती को बताता है, जैसा कि आपने उल्लेख किया है- "एक संपूर्ण सटीक आकार अनुमान प्राप्त करने के लिए पूरे कैश को पार करने के लिए मूर्खतापूर्ण" :) अत्यधिक परिष्कृत डिज़ाइन! –