The performance of a software system is directly impacted by its hardware components, so understanding how the hardware works is crucial. The processor, caches, memory, and I/O subsystems have different performance behaviors. Clojure, being a hosted language, understanding the performance properties of the host, that is, the JVM, is equally important. The Criterium library is useful for measuring the latency of the Clojure code—we will discuss Criterium again in Chapter 6, Measuring Performance. In the next chapter we will look at the concurrency primitives in Clojure and their performance characteristics.