# प्रोफ़ाइलिंग व बेंचमार्किंग — एडवांस्ड जावा

Source: https://www.geekswithgeeks.com/hi/advanced-java/adv-profiling

> JDK Flight Recorder व Mission Control से वास्तविक Java परफ़ॉर्मेंस मापें, और nanoTime लूप के बजाय JMH से भरोसेमंद माइक्रो-बेंचमार्क लिखें।

## टूल

**JFR** + **JMC** कम ओवरहेड प्रोडक्शन प्रोफ़ाइलिंग देते हैं। माइक्रो-बेंचमार्क के लिए **JMH** उपयोग करें।

## एक JMH बेंचमार्क

JMH JIT को warm-up करता है, कई पुनरावृत्ति चलाता है, और हर बेंचमार्क के लिए अलग JVM फ़ोर्क करता है ताकि परिणाम पिछले रन से प्रभावित न हों।

```java
@Benchmark
@BenchmarkMode(Mode.AverageTime)
@OutputTimeUnit(TimeUnit.NANOSECONDS)
public int sumLoop() {
    int total = 0;
    for (int x : data) total += x;
    return total;
}
```
