2011-03-17 10 views
33

मैं जानना चाहता हूं कि जावा ऑब्जेक्ट के कितने संदर्भ हैं यह जांचने का कोई तरीका है या नहीं। जहां तक ​​मैं ऐसा करने का एकमात्र तरीका देख सकता हूं, जेएनआईआई इंटरफ़ेस के माध्यम से JVMTI का उपयोग कर रहा है। क्या इस जानकारी को प्राप्त करने के लिए एक शुद्ध जावा (देशी पुस्तकालयों का उपयोग किए बिना) समाधान है?क्या वस्तु संदर्भ गणना प्राप्त करना संभव है?

हम डेटा संरचना एनीमेशन (कुछ एल्गोरिदम के छात्रों के कार्यान्वयन के साथ उपयोग करने के लिए) के लिए एक शैक्षिक उपकरण विकसित कर रहे हैं, इसलिए यह बहुत अच्छा होगा अगर हम सबसे अधिक घुसपैठ करने वाले तरीकों पर "रिलीज़" ऑब्जेक्ट्स की जांच कर सकते हैं (I किसी तत्व को हटाने या कुछ समान के लिए डेटा संरचना एनीमेशन को अद्यतन करने के लिए ऑब्जेक्ट रीलेज्ड (objRef) जैसी विधि को कॉल करने के लिए इस टूल के उपयोगकर्ता को मजबूर करने से बचने का प्रयास कर रहा है)

+2

संदर्भ संख्याओं को JVM में ट्रैक नहीं किया गया है। उन्हें जानने के लिए एकमात्र तरीका है। – Gabe

+1

एक लाइब्रेरी है जिसका उपयोग ऑब्जेक्ट कचरा इकट्ठा होने पर अधिसूचना प्राप्त करने के लिए किया जा सकता है। अधिक जानकारी के लिए कृपया इस लिंक का संदर्भ लें http://sourceforge.net/projects/gcradar/ –

+0

@AmrenduPandey, बस "कुछ अक्षरों को बोल्ड न करें" - यह कोई प्रश्न सुधारने का उचित तरीका नहीं है। संपादन महत्वपूर्ण होना चाहिए, न केवल परिवर्तन स्वरूपण होना चाहिए। – Charles

उत्तर

4

जावा इस विकल्प को मूल रूप से प्रस्तुत नहीं करता है जहाँ तक मुझे पता है।

यहाँ आप मैन्युअल रूप से कैसे यह करने के लिए पर कुछ मार्गदर्शन है:

http://www.velocityreviews.com/forums/t363649-how-do-i-get-a-reference-count-of-a-object-in-java.html

12

अपने विवरण से ऐसा प्रतीत होता तो आप बस पता है एक वस्तु एकत्र किया गया है जब की तुलना में संदर्भ की वास्तविक गणना बारे में कम परवाह । यदि ऐसा है, तो आप यह निर्धारित करने के लिए वीक रेफरेंस या फैंटॉम रेफरेंस का उपयोग कर सकते हैं कि संदर्भित ऑब्जेक्ट अंतिम रूप देने के लिए कब तैयार होता है।

देखें:

आशा है कि इससे मदद मिलती है।

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

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