मैं एक विश्वविद्यालय वर्ग के लिए एक स्थिर विश्लेषक लिखने के लिए देख रहा हूँ। टूल के लिए अधिक शक्ति प्रदान करने के लिए मैं कॉल पदानुक्रम को देखने में सक्षम होना चाहता हूं (जैसा कि Ctrl + Alt + H ग्रहण में करता है)। इसे एक तेज़ ऑपरेशन भी होना चाहिए, इसलिए लुकअप को शायद बाइटकोड स्कैनिंग के बजाय इंडेक्स के खिलाफ किया जाना होगा।क्या ग्रहण की कोड इंडेक्सिंग क्षमताओं को रद्द करना संभव है?
हालांकि, एक ग्रहण प्लगइन लिखना मुझे बहुत महत्वाकांक्षी होगा। इसके बजाय मैं ग्रहण के कुछ हिस्सों को तोड़ दूंगा जो कोड इंडेक्स बनाते हैं, और लुकअप करने के लिए लाइब्रेरी का उपयोग करते हैं। कार्यान्वयन को सरल बनाने के लिए उपयोगकर्ता को इंटरफ़ेस कमांड लाइन पर होगा।
मैंने पढ़ा कि ग्रहण इंडेक्सिंग [1] करने के लिए ल्यूसीन का उपयोग करता है, हालांकि, क्षमता के लिए लुसीन के ऊपर एक महत्वपूर्ण मात्रा में काम होना चाहिए ग्रहण अनुमति देता है।
सवाल यह है कि, पुन: उपयोग के लिए ग्रहण की अनुक्रमण क्षमताओं को रद्द करना संभव है? यदि नहीं, तो क्या अन्य, आसानी से उपलब्ध पुस्तकालय उपलब्ध हैं जो कि मैंने किस प्रकार की प्रसंस्करण पर चर्चा की है?
[1] Lucene इन एक्शन (IIRC)
संपादित
मुझे लगता है कि कुछ गलतफहमी हुई है। मैं कक्षा पदानुक्रम का निरीक्षण नहीं कर रहा हूं, मैं कॉल पदानुक्रम का निरीक्षण करना चाहता हूं। यही कारण है कि खोज और अनुक्रमण (किसी तरह का, हालांकि शायद यह सही शब्द नहीं है) चर्चा में आता है। वर्ग पदानुक्रम का निरीक्षण करना संभवतः कॉल पदानुक्रम का निरीक्षण करने से बहुत कम महंगा है।
एक ग्रहण प्लगइन लिखने के लिए, हाँ, मुझे यह पसंद है, लेकिन यह असाइनमेंट बहुत कम समय पर है, शायद यह संभवतः मैं इसे प्रबंधित करूँगा। लेकिन यह उपयोगी जानकारी है कि आप में से कुछ को लगता है कि यह उतना कठिन नहीं है जितना मुझे लगता है कि यह होगा।
शायद मैंने ग्रहण पर बहुत अधिक जोर दिया है, यह मेरे लिए हुआ है, मैं वास्तव में किसी भी उपकरण की तलाश में हूं जो बाइटकोड के माध्यम से कॉल ग्राफ़ का निरीक्षण करने के लिए एक एपीआई प्रदान करता है।
अभी तक आपके उत्तरों के लिए धन्यवाद!
- ग्रहण इतनी तेज़ी से कैसे कार्य करता है, यह जानने के लिए एक महत्वपूर्ण बात यह है कि यह एक बार सामान्य सूचकांक बनाता है, और फिर कक्षा परिवर्तन के दौरान इसे पूरी तरह अद्यतन करता है। तो मुझे लगता है कि इस ग्रहण सुविधा से कम करने के लिए बहुत कम है। मैं नहीं देखता कि आप प्रारंभिक पूर्ण बाइट कोड विश्लेषण से कैसे बच सकते हैं, जो कॉल पदानुक्रम की अनुक्रमणिका तालिका का निर्माण करेगा (जिसे कॉल पदानुक्रम के लिए खोजे जाने वाले प्रत्येक प्रकार को स्कैन करने से बचने के लिए सहेजा जा सकता है)। ईमानदार होने के लिए, वास्तव में एक विशाल कोडबेस को छोड़कर, एक पूर्ण स्कैन एएसएम के साथ वास्तव में तेज़ है, जिस समय आप "डेल्टा इंडेक्सर" लिखने में व्यतीत करेंगे, प्रयास के लायक नहीं होगा, इमो। – Olivier
एक प्रारंभिक अपफ्रंट स्कैन ठीक है। मैं जो अधिक चिंतित हूं, वह एक एपीआई ढूंढ रहा है जो सिर्फ यह करता है (क्योंकि यह मेरी कक्षा के दायरे से बाहर है)। यदि प्रारंभिक पूर्ण स्कैन एएसएम के साथ है, तो यह ठीक है, मैं बस उस बिट को लिखने से बचना चाहता हूं ;-) – Grundlefleck