Browse Clojure Foundations for Java Developers

Profiling and Performance Analysis

Profile first, then optimize; pay attention to allocations, laziness, and JVM hotspots.

Performance work in Clojure is still JVM performance work: CPU, allocation, GC, I/O, lock contention, and algorithmic complexity.

Two Clojure-specific themes show up often:

  • Allocations: persistent data + sequence operations can allocate; measure where it matters.
  • Laziness: work may happen later than you expect; realize sequences intentionally when needed.

This section focuses on a sane workflow: use profilers and production-like measurement, then make targeted changes you can justify with data.

In this section

Revised on Friday, April 24, 2026