Project setup
While finding bottlenecks is essential to fixing performance problems in the code, there are several things one can do right from the start to ensure better performance.
Software versions
Usually, new software versions include bug fixes, new features, and performance improvements. Unless advised to the contrary, it is better to use newer versions. For development with Clojure, consider the following software versions:
JVM version: As of this writing, Java 8 (Oracle JDK, OpenJDK, Zulu) has been released as the latest stable production-ready version. It is not only stable, it also has better performance in several areas (especially concurrency) than the earlier versions. If you have a choice, choose Java 8 over the older versions of Java.
Clojure version: As of this writing, Clojure 1.7.0 is the latest stable version that has several performance improvements over the older versions. There are also new features (transducers, volatile) that can make your code perform better. Choose...