Back to talks

Java Deep Dive: The Secrets of Profiling

Practical strategies for running Node.js applications at scale, from process management to distributed systems.

YavaConf · JDD · Javeloper · 4Developers · JUG Łódź|Poland||40 minutes
Audience: Java developers, Backend engineers, Performance engineers, Software architects
javajvmprofilingperformanceobservability

Modern Java systems operate in highly dynamic environments where performance and efficiency are critical for the success of software projects. This talk provides a deep dive into advanced profiling and performance optimization techniques for Java applications. The session focuses on practical approaches to diagnosing performance problems in JVM-based systems. We explore techniques ranging from basic CPU and memory analysis to more advanced topics such as runtime execution analysis, profiling distributed microservices, and identifying performance bottlenecks. The presentation also covers optimization strategies including algorithm improvements, caching, and multithreaded execution. Participants will learn how to use tools such as VisualVM, JProfiler, Java Mission Control, Java Flight Recorder, and JConsole. Real-world production cases illustrate how these techniques can be used to diagnose and resolve complex performance issues in Java systems.

Topics Covered

Process Management

  • Understanding the Node.js event loop
  • Using cluster mode effectively
  • Process managers and container orchestration
  • Graceful shutdown patterns

Performance Optimization

  • Memory management and leak detection
  • CPU profiling in production
  • Connection pooling strategies
  • Caching patterns

Observability

  • Structured logging at scale
  • Metrics that matter
  • Distributed tracing with OpenTelemetry
  • Alerting strategies

Reliability Patterns

  • Circuit breakers
  • Retry strategies with backoff
  • Health checks and readiness probes
  • Load shedding

Key Takeaways

  1. Node.js can scale horizontally very effectively
  2. Understanding the event loop is crucial for performance
  3. Observability should be built in from the start
  4. Reliability patterns are essential for production systems

Resources