Flight Recorder इस्तेमाल करें, जो JVM में ही बना है और कम ओवरहेड वाली लगातार recording के लिए बनाया गया है। चालू process पर jcmd से शुरू करें, एक खिड़की कैद करें, और recording को Mission Control में खोलकर hot methods, allocation site के हिसाब से, lock contention, garbage collection और exception rates देखें। native और Java frames को एक साथ दिखाने वाले flame graphs के लिए async profiler आम साथी है, और leaks के लिए औजार heap dumps ही रहते हैं।
इंटरव्यूअर यह क्यों पूछते हैं
इंटरव्यूअर देख रहे हैं कि आप timing logs जोड़कर दोबारा deploy करने की जगह असली औजारों से चलता सिस्टम जांच सकते हैं। यह जानना कि Flight Recorder साथ में आता है और production में चलाना सुरक्षित है, और दिलचस्प views सिर्फ CPU नहीं बल्कि allocation और lock contention हैं, यही फर्क पैदा करता है। इससे ईमानदारी से profiling की बात भी खुलती है, क्योंकि गर्म JIT पर लिया गया benchmark production जैसा नहीं होता।
अपना जवाब कैसे स्ट्रक्चर करें
- बिल्ट इन औजार का नाम लें और बताएं कि production में यह सुरक्षित क्यों है।
- बताएं कि चालू process पर recording कैसे शुरू करते हैं।
- बताएं कि आप कौन से views और किस क्रम में देखते हैं।
- leaks और flame graphs के लिए पूरक औजार जोड़ें।
उदाहरण जवाब
पहले Flight Recorder, क्योंकि यह JVM के साथ आता है और डिफॉल्ट profile का ओवरहेड इतना कम है कि उसे चालू छोड़ा जा सकता है। मैं चालू process पर jcmd से जुड़ता हूं, कुछ मिनट record करता हूं जिनमें वह धीमा बर्ताव आता हो, dump लेता हूं और Mission Control में खोलता हूं। मैं किस क्रम में चीजें देखता हूं यह लक्षण पर निर्भर है। CPU के लिए मैं hot methods पर जाता हूं, पर latency के लिए मुझे आमतौर पर call site के हिसाब से allocation से ज्यादा पता चलता है, क्योंकि हद से ज्यादा allocation ही collection pauses चलाती है, और lock contention से, जहां किसी गर्म path में पड़ा synchronized block तुरंत दिख जाता है। garbage collection और exception rates उसी recording में हैं, तो मैं अंदाजा लगाने की जगह उन्हें आपस में मिला सकता हूं। अगर मुझे ऐसा flame graph चाहिए जो Java के साथ native frames भी दिखाए, तो मैं async profiler लेता हूं, जो पुराने sampling profilers वाले safepoint bias से भी बचाता है। memory leaks के लिए औजार heap dump और dominator tree हैं, क्योंकि profile मुझे allocation दिखाता है, retention नहीं। और मैं हमेशा किसी स्वस्थ दौर की baseline recording से तुलना करता हूं, क्योंकि अकेले profile को यह पता ही नहीं होता कि सामान्य क्या है।
जल्दी ही यह इंटरव्यू देने जा रहे हैं? GhostPilot आपकी लाइव कॉल सुनता है, सवाल पूछे जाते ही उसे पकड़ लेता है, और रियल-टाइम में एक स्ट्रक्चर्ड जवाब आपकी स्क्रीन पर डाल देता है। अगले मॉक में इसे आजमाएं, या ले लें एक $29 Session Pass, कोई सब्सक्रिप्शन नहीं, असली इंटरव्यू के लिए।
देखें यह कैसे काम करता हैफॉलो-अप सवाल जिनकी उम्मीद रखें
- डिफॉल्ट Flight Recorder profile कितना ओवरहेड जोड़ता है?
- safepoint bias क्या है, और profilers के लिए यह क्यों मायने रखता है?
- steady state की जगह startup की दिक्कत को आप कैसे profile करेंगे?
Java डेवलपर के और सवाल
आपका इंटरव्यूअर इसका अपना वर्ज़न पूछेगा। फ्री Question Predictor में अपना असली जॉब डिस्क्रिप्शन पेस्ट कीजिए और वो 20 सवाल पाइए जो उस रोल में सबसे ज्यादा पूछे जाने की संभावना है, साथ में यह भी कि हर सवाल असल में क्या टटोल रहा है।
मेरे सवाल प्रेडिक्ट करें