Metrik kinerja dan pengukuran

Optimasi Kode di Java

Pavlos Kosmetatos

Lead Engineer @Wealthyhood

Melampaui pengukuran waktu

  • Video sebelumnya
    • Mengukur waktu operasi
    • Manajemen memori di JVM
  • Melampaui pengukuran waktu
  • Metrik memori
  • Metrik utilisasi CPU
Optimasi Kode di Java

Metrik memori dengan Runtime

// Get the Runtime instance
Runtime runtime = Runtime.getRuntime();


// Memory metrics in bytes long totalMemory = runtime.totalMemory(); // Memory currently allocated long freeMemory = runtime.freeMemory(); // Memory that is unused long maxMemory = runtime.maxMemory(); // Maximum memory JVM will attempt to use
  • Semua mengembalikan angka long dalam byte
Optimasi Kode di Java

Memahami metrik memori

  • maxMemory(): Memori maksimum yang akan dicoba JVM (diatur oleh -Xmx)
  • totalMemory(): Memori yang saat ini dialokasikan ke JVM
  • freeMemory(): Memori tidak terpakai
  • usedMemory(): totalMemory - freeMemory
  • JVM dapat menaikkan totalMemory hingga maxMemory sesuai kebutuhan
Optimasi Kode di Java

Metrik memori dalam praktik

// Create a utility method for readable memory values
public static double getUsedMemoryMB() {
    Runtime runtime = Runtime.getRuntime();
    long memory = runtime.totalMemory() - runtime.freeMemory();
    return memory / (1024.0 * 1024.0);  // Convert to MB
}

// After allocation
System.out.println("Memory used: " + getUsedMemoryMB() + " MB");
Memory used: 5.23 MB
Optimasi Kode di Java

Pengukuran utilisasi CPU

import java.lang.management.*;

ThreadMXBean threadMXBean = ManagementFactory.getThreadMXBean();

// Check if CPU time measurement is supported if (threadMXBean.isThreadCpuTimeSupported()) { // Enable CPU time measurement threadMXBean.setThreadCpuTimeEnabled(true); // Get CPU time in nanoseconds long cpuTimeNs = threadMXBean.getThreadCpuTime(Thread.currentThread().threadId()); }
Optimasi Kode di Java

Alat profiling Java

  • JVisualVM: Antarmuka visual untuk memantau memori, CPU, dan lainnya
  • jmap: Alat analisis memori via command line
  • Alat ini melampaui metrik sederhana yang telah dibahas!
Optimasi Kode di Java

Ayo berlatih!

Optimasi Kode di Java

Preparing Video For Download...