Profiling with JVisualVM Java In Hindi

Profiling with JVisualVM Java In Hindi

जावा प्रोग्रामिंग लैंग्वेज में, JVisualVM एक जावा मॉनिटरिंग और प्रोफाइलिंग टूल या फीचर है, जो जावा सॉफ्टवेयर डेवलपर्स को जावा एप्लिकेशन के रनटाइम बिहेवियर को कण्ट्रोल, मैनेज, और एनालाइज़ करने में हेल्प करता है।

Profiling with JVisualVM Java In Hindi

JVisualVM can help Java users to identify.

  • अधिक आपके मौजूदा सिस्टम हार्डवेयर में कंप्यूटर CPU का यूसेज।
  • मौजूदा सिस्टम में मेमोरी यूसेज।
  • प्रोग्रामिंग सिस्टम में गार्बेज-कलेक्शन डाटा एक्टिविटी टास्क।
  • सिस्टम मेमोरी लीक बिहेवियर।
  • थ्रेड टास्क प्रॉब्लम।
  • स्लो क्लास तरीके।
  • सिस्टम एप्लिकेशन परफॉर्मेंस में आने वाली स्टॉप्स या ब्लॉक।

What is JVisualVM in Java?

जावा प्रोग्रामर को JVisualVM एप्लीकेशन में रन हो रहे JVM सिस्टम में रनिंग टास्क एक्टिविटीज टास्क की मॉनिटरिंग के लिए एक ग्राफिकल इंटरफ़ेस प्रोवाइड करता है।

A typical JVisualVM monitoring workflow is as follows.

जावा यूजर एप्लिकेशन

              ↓

JVM प्लेटफार्म

             ↓

JVisualVM एप्लीकेशन

             ↓

मॉनिटर / प्रोफ़ाइल टूल

             ↓

सिस्टम टास्क में रुकावट को ढूंढें

             ↓

जरूरी जावा सोर्स कोड को ऑप्टिमाइज़ करें

Starting the JVisualVM Application in Java.

जावा यूजर अपने कंप्यूटर में जावा आईडीई एप्लिकेशन को स्टार्ट करने के बाद, JVisualVM एप्लीकेशन को ओपन करे।

इसमें आपके कंप्यूटर सिस्टम में लोकल रन हो रहे जावा एप्लिकेशन सामान्य रूप से लोकल सेक्शन में डिस्प्ले हो सकते हैं।

इसके बाद जावा यूजर JVM एप्लीकेशन टास्क के बारे में डिटेल इनफार्मेशन को प्रीव्यू करने के लिए अपना एक एप्लिकेशन को सलेक्ट करे। जावा में JVisualVM एप्लीकेशन की अवेलेबिलिटी और पैकेजिंग मॉडर्न जावा JDK डिस्ट्रीब्यूशन के साथ अलग-अलग हो सकती है. इस वजह से जावा यूजर को इसे अलग से मैन्युअल इंस्टॉल करना पड़ सकता है।

Monitoring CPU and Memory Consumption with JVisualVM Applications in Java.

जावा यूजर के JVisualVM एप्लीकेशन में रन हो रहे जावा प्रोग्राम एप्लीकेशन यूसेज खपत और करंट सिस्टम टास्क एक्टिविटीज मॉनिटरिंग की डिटेल इनफार्मेशन प्रोवाइड करता है. जैसे:

  • मौजूदा सिस्टम हार्डवेयर में कंप्यूटर CPU रिसोर्सेज यूसेज।
  • हीप यूसेज डिटेल इनफार्मेशन।
  • यूज़्ड हीप डिटेल इनफार्मेशन।
  • मैक्सिमम हीप डिटेल इनफार्मेशन।
  • थ्रेड्स टास्क डिटेल इनफार्मेशन।
  • क्लासेस प्रोग्राम डिटेल इनफार्मेशन।
  • GC टास्क डिटेल एक्टिविटी।

Example of JVisualVM Applications Monitoring CPU and Memory.

हीप यूसेज

1100 MB ┤ ╭──╮

900 MB ┤ ╭──╯ ╰──╮

700 MB ┤ ╭──╯ ╰──

500 MB ┤─╯

└─────────────────

टाइम ऑफ़ यूसेज

यहाँ हीप यूसेज में गार्बेज कलेक्शन के बाद बॉटम लेवल पर रिटर्न हुए बिना हीप यूसेज लगातार इनक्रीस होता है, तो यह जावा यूजर के लिए एक सिग्नल हो सकता है. जिससे यह आपके लिए जांच करने लायक हो सकता है।

CPU Profiling Concepts in JVisualVM Applications.

जावा यूजर को प्रोफाइलर उन बेसिक स्टेप्स मेथड की पहचान करने में हेल्प कर सकता है, जो बहुत अधिक जावा सिस्टम CPU टाइम या रिसोर्सेज को यूज़ करते हैं।

Example of CPU Profiling.

जावा यूजर अपने सिस्टम में यूज़ CPU रिसोर्सेज में ये डिटेल इनफार्मेशन का पता लगा सकते हैं.

Method CPU Time Detail Information

—————————————

OrderService.processOrders() 51%

PriceCalculator.calculate() 19%

DatabaseService.query() 21%

Other 9%

आपके अपने सिस्टम में यूज़ CPU खपत रिसोर्सेज में ये डिटेल इनफार्मेशन जावा यूजर को यह इंडीकेट करता है कि आपको कहां पर टेस्टिंग करनी है, न कि यह अंदाज़ा लगाना कि कौन सा कोड अभी स्लो परफॉर्म कर रहा है।

A simple CPU profiling workflow is as follows.

अपने एप्लिकेशन को स्टार्ट करें

                   ↓

JVisualVM एप्लीकेशन को ओपन करे

                   ↓

अपने आईडीई एप्लिकेशन को सलेक्ट करे

                  ↓

CPU प्रोफाइलिंग को स्टार्ट करें

                  ↓

स्लो टास्क ऑपरेशन को मैनेज करें

                 ↓

CPU प्रोफाइलिंग को स्टॉप करे

                 ↓

अपने कस्टम तरीकों का एनालिसिस करें

Memory profiling in JVisualVM applications.

आपके मौजूदा जावा प्रोग्राम सोर्स कोड आईडीई में यूज़ JVisualVM एप्लीकेशन जावा डेवलपर को यह अंडरस्टैंड करने में हेल्प कर सकता है कि आपका एक्टिव रनिंग एप्लिकेशन कितनी सिस्टम मेमोरी रिसोर्सेज का यूज़ या खपत कर रहा है।

Example of memory profiling.

List<Order> orders = new ArrayList<>();

for (int p = 0; p < 3_000_000; p++) {

orders.add(new Order(i));

}

यदि आपके प्रोग्राम में बहुत सारे ऑब्जेक्ट्स बिना वजह रेफर किए हुए रहते हैं, तो सिस्टम मेमोरी रिसोर्सेज का यूज़ काफी हद तक बढ़ सकता है।

Java users can check these elements in their memory profiling.

  • मेमोरी में हीप का यूज़ इनफार्मेशन।
  • ऑब्जेक्ट इंस्टेंस एलिमेंट यूसेज।
  • प्रोग्राम में मेमोरी यूज़ करने वाली प्रमुख क्लासेस।
  • सिस्टम मेमोरी गार्बेज कलेक्शन इन्फो।
  • हीप डंप डिटेल इनफार्मेशन।

Heap dump in JVisualVM applications.

जावा प्रोग्राम में हीप डंप, जावा हीप में अभी मौजूद प्रोग्राम ऑब्जेक्ट्स का एक स्क्रीन स्नैपशॉट होता है।

यह जावा डेवलपर को सस्पेक्टेड मेमोरी लीक इनफार्मेशन को टेस्ट करने में हेल्प कर सकता है।

Heap dump example.

हीप डंप इन्फो

├── ऑर्डर

├── यूजर

├── हैशमैप

├── स्ट्रिंग

└── …

यदि जावा यूजर को हीप डंप में पता चलता है कि किसी स्पेशल तरह के लाखों सोर्स कोड ऑब्जेक्ट्स अचानक मेमोरी में रह जाते हैं, तो जावा यूजर इसमें टेस्ट कर सकते हैं कि उन्हें रीचेबल क्या बनाए हुए है।

A common heap dump test pattern is as follows.

सिस्टम मेमोरी के यूसेज का बढ़ना

                     ↓

            हीप डंप लेना

                    ↓

  प्रोग्राम ऑब्जेक्ट्स को एनालाइज़ करना

                    ↓

अनपेक्षित रूप से रिटेन किए गए प्रोगाम ऑब्जेक्ट्स को ढूंढना

                    ↓

    रेफरेंस की जांच करना

                    ↓

एप्लिकेशन कोड को ठीक से यूज़ करना

Thread task monitoring in JVisualVM applications.

जावा प्रोग्राम में JVisualVM एप्लिकेशन सिस्टम में यूज़ होने वाली थ्रेड्स के बारे में भी डिटेल इनफार्मेशन प्रोवाइड करता है। जावा यूजर इसमें देख सकते हैं.

JVisualVM applications thread state.

———————————-

main RUNNABLE

http-worker-1 WAITING

http-worker-2 RUNNABLE

database-worker BLOCKED

This can help identify Java threads.

  • ब्लॉक किए गए सिस्टम थ्रेड्स टास्क।
  • वेटिंग थ्रेड्स टास्क लाइन।
  • बहुत ज़्यादा थ्रेड क्रिएशन मेथड।
  • संभावित डेडलॉक कंडीशन।
  • थ्रेड कंटेन्शन एलिमेंट।

Garbage collection in a Java JVisualVM application.

जावा प्रोग्रामिंग लैंग्वेज में, JVisualVM GC सिस्टम में हो रही सभी टास्क एक्टिविटीज इनफार्मेशन को डिस्प्ले कर सकता है।

Example of garbage collection.

       जावा एप्लिकेशन

                   ↓

  प्रोग्राम ऑब्जेक्ट बनाता है

                  ↓

        हीप फिल मेथड

                  ↓

गारबेज कलेक्शन इनफार्मेशन डाटा

                  ↓

बिना इस्तेमाल किए क्लास प्रोग्राम ऑब्जेक्ट हटाए गए

यदि जावा प्रोग्राम में गार्बेज कलेक्शन बहुत बार होता है, या बहुत ज़्यादा CPU इसमें टाइम लेता है, तो यह बहुत ज़्यादा ऑब्जेक्ट एलोकेशन या गलत JVM/एप्लिकेशन कॉन्फ़िगरेशन का इंडिकेशन हो सकता है।

Example of finding a performance problem in Java.

माना की जावा यूजर के पास यह तरीका स्लो हो सकता है.

public void processOrders(List<Order> orders) {

for (Order order : orders) {

calculatePrice(order);

sendNotification(order);

}

}

इसमें आप मौजूदा जावा सोर्स कोड को इमीडियेट मॉडिफाई रिप्लेस करने के बदले, उसे प्रोफाइल करें।

This is understandable to Java users.

processOrders() 100%

├── countRate() 23%

└── sendNotification() 77%

जावा में प्रोफाइलिंग के नतीजे इंडीकेट करते हैं कि sendNotification() फंक्शन की टेस्टिंग होनी चाहिए।

The key principle is.

पहले इसे मापें, इसके बाद इसे जरूरत के अनुसार मैन्युअल ऑप्टिमाइज़ करें।

Main Difference Between Java Jvisualvm Vs Ide Debugger

#IDE Debugger OverviewJvisualvm Overview
1.Java IDE Debugger help us to finds logical issues bugs in program.JVisualVM java application helps us to usages resources finds performance problems.
2.Java IDE Debugger run all step through program source code.JVisualVM java application helps us to monitor runtime existing system application behavior.
3.Java IDE Debugger enable us to inspect java program data type variables and other element.JVisualVM java application helps us to Analyse or understand usage of CPU and memory.
4.Java IDE Debugger allow you to set multiple breakpoints method.JVisualVM java application helps us to create profiling with its elements.
5.Java IDE Debugger enable us to manage call stack method.JVisualVM java application helps us to manage thread/heap analysis data.
6.Java IDE Debugger best use for all type program data correctness.JVisualVM java application best for existing use system performance investigation.

Conclusion of Profiling with JVisualVM.

जावा आईडीई प्रोग्राम के साथ JVisualVM जावा यूजर को यह डिटेल में अंडरस्टैंड या एनालाइज करने में हेल्प करता है कि जब जावा यूजर का जावा प्रोग्राम एप्लिकेशन रन हो रहा हो तो JVM उस समय क्या कर रहा है। यह सिर्फ़ जावा सोर्स सोर्स कोड को स्टेप-बाय-स्टेप एक्सेक्यूट रन करने के बदले CPU बॉटलनेक, सिस्टम मेमोरी यूसेज, गार्बेज कलेक्शन डाटा, और थ्रेड बिहेवियर को टेस्ट करने के लिए स्पेशली यूज़फुल है।

Leave a Reply