Schadenfreude: A Clojure Microbenchmarking Tool for Riemann

In search of a way to benchmark Riemann's internal functions and network behavior, developer Kyle Kingsbury has been working on a new Clojure tool called Schadenfreude—a name that reflects his feelings toward benchmarks in general. The tool is designed to answer questions about parser efficiency, threadpool sizing, and the impact of specific commits on latency distributions.

The motivation stems from a key difference in how "realtime" systems should be evaluated: understanding the full latency distribution, including time-dependent behavior due to GC pressure, often matters more than a single throughput number. While Basho Bench handles this well, its Erlang implementation prevents microbenchmarking of Riemann functions directly at the REPL, creating the gap Schadenfreude aims to fill.

Kingsbury notes the current implementation is still rough around the edges. The timing code remains naive—no OS cache drops, no forced GC or finalizers—and he plans to look into borrowing techniques from Criterium. Time alignment looks questionable, and the definition of "throughput" still needs clarification. Once the tool reaches a usable state outside a REPL, it will be published to Clojars and GitHub.