2012-11-12 19 views
5

के साथ ehcache का उपयोग करते हुए मैं अपने आवेदन में टेराकोटा के साथ ehcache का उपयोग कर रहा हूं। जब मैं टेराकोटा के साथ ehcache का उपयोग कर रहा हूं तो मेरा प्रतिक्रिया समय 700 गुना बढ़ गया है। मुझे लगता है कि यह मेरे टेराकोटा देने की चेतावनी के रूप में वस्तुओं के आकार को मापने में समय लग रहा है:IgnoreSize पर टिप्पणी करें जब टेराकोटा

net.sf.ehcache.pool.sizeof.ObjectGraphWalker checkMaxDepth चेतावनी: 1,000 वस्तु संदर्भ के लिए कॉन्फ़िगर किया गया सीमा तक पहुँच गया था जबकि ऑब्जेक्ट ग्राफ़ के आकार की गणना करने का प्रयास कर रहा है। गंभीर आकार घटाना तब हो सकता है जब आकार का संचालन जारी रहता है। इसे कैशमेंजर या कैश तत्वों को अधिकतम करने के लिए maxDepthExceededBehavior को "abort" या स्टॉप पॉइंट को @IgnoreSizeOf एनोटेशन के साथ जोड़कर टाला जा सकता है। यदि कॉन्फ़िगरेशन सीमा पर प्रदर्शन गिरावट समस्या नहीं है, तो कैशमेनगर या कैश तत्व maxDepth विशेषता का उपयोग करके सीमा मान बढ़ाएं। अधिक जानकारी के लिए, Ehcache कॉन्फ़िगरेशन दस्तावेज़ देखें।

जब मैंने अपनी कक्षा पर @IgnoreSizeOf एनोटेशन का उपयोग किया, प्रतिक्रिया समय बहुत कम हो गया। मेरा सवाल है @IgnoreSizeOf एनोटेशन का उपयोग करके कोई नुकसान होता है। इसका उपयोग किस प्रकार किया जा रहा है और यह मेरे आवेदन के प्रतिक्रिया समय को कैसे कम कर रहा है कृपया मदद करें। अग्रिम धन्यवाद।

उत्तर

7

यह एनोटेशन टेराकोटा क्लस्टरिंग से संबंधित नहीं है। मुझे लगता है कि आपने इस विषय पर अन्य प्रश्न पोस्ट किया है।

@IgnoreSizeOf एनोटेशन में आकार ओफइंजिन होगा, जो आपके कैश में प्रविष्टियों की स्मृति पदचिह्न को मापता है, आपके कैश किए गए प्रविष्टियों के एनोटेटेड कक्षाओं (या पूरे पैकेज) या उपग्राफ (एनोटेटेड फ़ील्ड्स) के उदाहरणों को अनदेखा करता है।

तो यदि आपके द्वारा कैश किए गए ऑब्जेक्ट ग्राफ़ में "साझा" सबग्राफ है, तो आप उस फ़ील्ड को एनोटेट करेंगे जहां वह ग्राफ एनोटेशन के साथ शुरू होता है। यदि आप सब कुछ को अनदेखा करते हैं तो कुछ भी नहीं आकार दिया जाएगा और maxBytesLocalHeap सेटिंग में कोई अर्थपूर्ण नहीं है (आप अंततः ओओएमई से पीड़ित होंगे)।

एनोटेशन का सही उपयोग करने के लिए आपको उस ऑब्जेक्ट ग्राफ़ को समझने की आवश्यकता है जिसे आप कैशिंग कर रहे हैं। अधिक जानकारी के लिए http://ehcache.org/documentation/configuration/cache-size#built-in-sizing-computation-and-enforcement देखें।

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

+0

या ओओएमई तक पहुंच रहा हूं और इसलिए मैंने maxBytesLocalHeap सेट किया है। यह सोचकर कि यह ओओएमई – user1147070

+0

की मेरी समस्या को हल करेगा, यह वास्तव में सब कुछ है ... फिर, एनोटेशन का उपयोग करने में कोई प्रभाव नहीं पड़ता है, इसके विपरीत। हालांकि कैश में जोड़े गए ऑब्जेक्ट ग्राफ़ को मापने के लिए उनका एक प्रभाव प्रभाव (डाल पर) है। प्रभाव कितना बड़ा है, संभवतः ग्राफ पर कितना बड़ा निर्भर है ... लेकिन आम तौर पर ये बहुत बड़े नहीं होते हैं, लेकिन प्रविष्टियां "साझा" ग्राफ का संदर्भ दे सकती हैं। उस एनोटेशन का उपयोग करते हुए आकार बदलने पर इसे अनदेखा किया जाना चाहिए। –

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