2010-11-28 9 views
13

NHibernate documentation और पुस्तक NHibernate In Action बताती है कि कैश प्रदाता NHibernate.Cache.HashtableCacheProvider उत्पादन के उपयोग के लिए नहीं है। हालांकि, मुझे इसके लिए कोई कारण नहीं मिला। क्या किसी को कारण पता है?NHibernate.Cache.HashtableCacheProvider क्यों उत्पादन उपयोग के लिए लक्षित नहीं है?

उत्तर

12

क्योंकि यह किसी भी तरह के उचित कैशिंग अर्थशास्त्र (पहला उदाहरण जो दिमाग में आता है: टाइमआउट) का समर्थन नहीं करता है, और यह मूल रूप से अनिश्चित काल तक बढ़ता है।

यह केवल परीक्षण के लिए है, क्योंकि यह केवल स्थानीय कैश का सबसे आसान संभव कार्यान्वयन प्रदान करता है।

+6

"खराब नीति वाला कैश मेमोरी लीक के लिए एक और नाम है।" http://blogs.msdn.com/b/oldnewthing/archive/2006/05/02/588350.aspx – codekaizen

+0

धन्यवाद! मेरे आवेदन में इसका उपयोग न करने के लिए अनिश्चितकालीन वृद्धि पहले से ही पर्याप्त कारण है। हालांकि, क्या आप उचित कैशिंग सेमेन्टिक्स/टाइमआउट मुद्दे को और विस्तारित कर सकते हैं? और परीक्षण के साथ वास्तव में क्या मतलब है - "सत्य" परीक्षण (इकाई परीक्षण इत्यादि) या बस कुछ विज्ञापन "चारों ओर खेलें" परीक्षण? –

+0

@ मार्को: कैश प्राथमिकता, हैंडलिंग निर्भरता, समाप्ति को सीमित करके सीमित संसाधनों (स्मृति) के उपयोग को अनुकूलित करने में सक्षम होना चाहिए ... हैशटेबल कैश इकाई परीक्षण के लिए पर्याप्त है (उदाहरण के लिए, एक ही भंडार विधि को दो बार परिणाम देने पर जोर देना एक डीबी कॉल)। यह चारों ओर खेलने के लिए भी बहुत अच्छा है क्योंकि यह अनुमान लगाया जा सकता है। –

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