🚀 Spring Boot Memory Monitor

🔒 100% Client-Side & Data-Safe: No Storage, No Servers, Pure HTML/JS

Interval: seconds

🔍 Aggregated (All Areas)

💡 Note: These values combine both heap and non-heap memory areas for a complete JVM memory overview.

Max Memory (All)
7408.0 MB
Committed Memory (All)
2061.3 MB
27.8% of max NORMAL
2058.7 MB ▼ 30s 2065.1 MB ▲ 60s 2061.3 MB 5min 2000.0 MB start
Used Memory (All)
1012.1 MB
13.7% of max NORMAL
1015.8 MB ▲ 30s 1008.3 MB ▼ 60s 1020.5 MB ▲ 5min 800.0 MB start
Free (Committed - Used)
1049.2 MB
Free Not Committed
5346.7 MB
To OutOfMemoryError
6395.9 MB

📦 Heap Area

🎯 Note: Heap values directly correspond to your JVM -Xmx setting. This is where your application objects live.

Max Memory (Heap)
6144.0 MB
Committed Memory (Heap)
1756.0 MB
28.6% of heap max NORMAL
1750.2 MB ▼ 30s 1760.5 MB ▲ 60s 1756.0 MB 5min
Used Memory (Heap)
725.8 MB
11.8% of heap max NORMAL
730.2 MB ▲ 30s 720.5 MB ▼ 60s 740.0 MB ▲ 5min
Free (Committed - Used)
1030.2 MB
Free Not Committed
4388.0 MB
To OutOfMemoryError
5418.2 MB
🧠 The application is using about 725.8 MB of heap memory, with 1756.0 MB committed, and a maximum heap limit of 6144.0 MB.
⚠️ It can still allocate up to 5418.2 MB of heap before hitting an OutOfMemoryError.

🧰 Non-Heap Area

🔧 Note: Non-heap includes Metaspace (class metadata), CodeCache (compiled code), and other JVM internal structures.

Max Memory (Non-Heap)
1264.0 MB
Committed Memory (Non-Heap)
305.3 MB
24.2% of non-heap max NORMAL
308.5 MB ▲ 30s 310.2 MB ▲ 60s 315.0 MB ▲ 5min
Used Memory (Non-Heap)
286.4 MB
22.7% of non-heap max NORMAL
288.7 MB ▲ 30s 290.1 MB ▲ 60s 295.0 MB ▲ 5min
Free (Committed - Used)
18.9 MB
Free Not Committed
958.7 MB
To OutOfMemoryError
977.6 MB
🚧 Coming Soon: CPU Performance Analytics 🚧

Detailed CPU metrics and performance insights are on the way!

🧠 Memory Metrics

Heap Memory Used

What it is: Amount of heap memory currently in use by the JVM.

Why it matters: Indicates how much of the available memory is consumed by application objects.

⚠️ Alert: If constantly > 80% of max, may indicate memory leak or need for more memory.

✅ Ideal: Between 40-70% of heap max during normal operation.

Heap Memory Max

What it is: Maximum amount of heap memory the JVM can use (defined by -Xmx).

Why it matters: Defines the upper limit for object allocation.

⚠️ Alert: If too low, may cause OutOfMemoryError. If too high, may impact GC.

✅ Ideal: Configure based on application profile and available resources.

Non-Heap Memory Used

What it is: Memory used outside the heap (Metaspace, Code Cache, etc.).

Why it matters: Includes compiled bytecode, class metadata, etc.

⚠️ Alert: Constant growth may indicate excessive class loading.

✅ Ideal: Stable after application warmup.

⚡ Performance Metrics

CPU Usage

What it is: System CPU usage percentage.

Why it matters: Indicates overall computational load of the system.

⚠️ Alert: Constantly > 80% may indicate CPU bottleneck.

✅ Ideal: < 70% in normal operation, allowing occasional spikes.

Live Threads

What it is: Number of active threads in the JVM.

Why it matters: Too many threads can impact performance and consume memory.

⚠️ Alert: Uncontrolled growth may indicate thread leaks.

✅ Ideal: Stable number, proportional to workload.

🗑️ Garbage Collection

GC Memory Allocated

What it is: Total memory allocated and subsequently collected by GC.

Why it matters: Indicates allocation activity and GC pressure.

⚠️ Alert: Rapid growth may indicate high allocation rate.

✅ Ideal: Linear and predictable growth.

🎯 Optimization Tips

Memory Management

  • String Pooling: Use StringBuilder for concatenation in loops
  • Object Reuse: Implement object pooling for expensive objects
  • Lazy Loading: Load resources only when needed
  • Weak References: Use for caches that can be freed by GC

JVM Tuning

  • -Xmx: Set heap max based on application profile
  • -XX:+UseG1GC: G1GC for applications with heap > 4GB
  • -XX:MaxGCPauseMillis: Configure GC pause target
  • -XX:+HeapDumpOnOutOfMemoryError: For memory leak debugging

Monitoring Best Practices

  • 📊 Alerts: Set alerts for CPU > 80%, Memory > 85%
  • 📈 Trending: Use Prometheus + Grafana for historical analysis
  • 🔍 Profiling: Use JProfiler/VisualVM for detailed analysis
  • 📝 Logs: Monitor GC logs for anomalous patterns