यदि आप बहुत बार लॉकिंग और अनलॉक कर रहे हैं, तो जुर्माना हो सकता है, क्योंकि ताले प्राप्त करने और रिलीज़ करने में कुछ समय लगता है, और ताले का तर्क होने पर उचित समय लग सकता है।
इस तरह की संरचना में कई ताले का उपयोग करते समय, आपको प्रत्येक लॉक वास्तव में ताले के बारे में बहुत विशिष्ट होना होगा, और सुनिश्चित करें कि आप एबी-बीए डेडलॉक्स से सावधान रहें। उदाहरण के लिए, यदि आप लॉकिंग ऑपरेशन के दौरान पेड़ की संरचना को बदल रहे हैं, तो आपको निरंतर क्रम में, सभी नोड्स को लॉक करने की आवश्यकता होगी, और यह सुनिश्चित कर लें कि वंशजों पर काम करने वाले थ्रेड उलझन में नहीं आते हैं।
यदि आपके पास बहुत बड़ी संख्या में ताले हैं, तो स्मृति में फैले हुए हैं, तो कैशिंग मुद्दे आर्किटेक्चर के आधार पर प्रदर्शन समस्याओं का कारण बन सकते हैं, क्योंकि लॉकिंग ऑपरेशंस आमतौर पर कैश के कम से कम हिस्से को अमान्य कर देते हैं।
आपकी सबसे अच्छी शर्त शायद एक साधारण लॉकिंग संरचना को लागू करने के लिए है, फिर प्रोफ़ाइल करें, फिर आवश्यक होने पर प्रदर्शन में सुधार करने के लिए इसे परिशोधित करें। मुझे यकीन नहीं है कि आप पेड़ के साथ क्या कर रहे हैं, लेकिन शुरू करने के लिए एक अच्छी जगह पूरे पेड़ के लिए एक पाठक-लेखक लॉक हो सकती है, अगर आप अपडेट करने से कहीं ज्यादा पढ़ने की उम्मीद करते हैं।
"हमें छोटी क्षमता के बारे में भूल जाना चाहिए, समय के बारे में 9 7% कहें: समयपूर्व अनुकूलन सभी बुराइयों की जड़ है।" - डोनाल्ड Knuth
एक पेड़ पर कुछ हज़ार है .. संदिग्ध तरह .. लेकिन वास्तव में इसे देखे बिना कहना मुश्किल है। क्या आप क्या कर रहे हैं इसका एक उचित व्यापक उदाहरण दिखाने के लिए पर्याप्त कोड पोस्ट कर सकते हैं? –