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. With Clojure being a hosted language, understanding the performance properties of the host, that is, the JVM, is equally important. The Criterium library is useful to measure the latency of the Clojure code—we will discuss Criterium again in Chapter 6, Optimizing Performance. In the next chapter we will look at the concurrency primitives in Clojure and their performance characteristics.