JVM मेमोरी आर्किटेक्चर समझें

Java में कोड ऑप्टिमाइज़ करना

Pavlos Kosmetatos

Lead Engineer @Wealthyhood

JVM क्या है?

  • प्लेटफ़ॉर्म-इंडिपेंडेंट execution environment
  • bytecode (.class) को machine code में बदलता है
  • मेमोरी प्रबंधन और garbage collection
  • Just-In-Time compilation
Java में कोड ऑप्टिमाइज़ करना

JVM मेमोरी आर्किटेक्चर का ओवरव्यू

JVM मेमोरी आर्किटेक्चर

Java में कोड ऑप्टिमाइज़ करना

Stack मेमोरी

  • मेथड execution और लोकल वैरिएबल्स के लिए मेमोरी एरिया
  • LIFO (Last-In-First-Out) स्ट्रक्चर
  • स्टोर करता है:
    • लोकल वैरिएबल्स
    • प्रिमिटिव डेटा टाइप्स
    • मेथड कॉल जानकारी
  • साइज पार होने पर StackOverflowError
Java में कोड ऑप्टिमाइज़ करना

Heap मेमोरी

  • सभी objects और arrays स्टोर करता है
  • new object बनाता है और उसे heap में अलॉट करता है
  • garbage collector द्वारा managed
  • डायनेमिक साइज
  • generations में विभाजित
Java में कोड ऑप्टिमाइज़ करना

मेमोरी इन एक्शन

public void processData() {
    int count = 0;                  // Stack

String name = "Java"; // Heap
List<String> items = // Reference on Stack new ArrayList<>(); // Object on Heap
items.add(new String("Item")); // Object on Heap }
Java में कोड ऑप्टिमाइज़ करना

मेमोरी-एफिशिएंट कोडिंग पैटर्न्स

// Inefficient
List<String> list1 = new ArrayList<>();
for (int i = 0; i < 1000; i++) {
    String s = new String("value"); // 1000 objects
    list1.add(s);
}

// Better
List<String> list2 = new ArrayList<>();
String s = "value";  // Single object
for (int i = 0; i < 1000; i++) {
    list2.add(s);
}
Java में कोड ऑप्टिमाइज़ करना

सारांश

  • JVM मुख्यतः stack और heap एरियाज़ से मेमोरी मैनेज करता है
  • Stack मेमोरी -> तेज, primitives और references स्टोर करता है
  • Heap मेमोरी -> objects स्टोर करता है
Java में कोड ऑप्टिमाइज़ करना

अभ्यास करते हैं!

Java में कोड ऑप्टिमाइज़ करना

Preparing Video For Download...