Fork me on GitHub

combinatorrent by jlouis

A bittorrent client written in Haskell


Alex Mason
Jesper Louis Andersen
John Gunderman
Thomas Christensen

RTS Benchmarks

These are the current RTS benchmark runs from the last development runs by jlouis. It is meant for tracking regressions of performance with the runtime over time.

Maximal live heap space (megabytes) [SVG] [PNG]
Peak RSS usage (megabytes) [SVG] [PNG]
Productivity [SVG] [PNG]
CPU / Network [SVG] [PNG]

The "Maximal live heap space" tracks the amount of megabytes that were maximally live when the client executed. We seek to bring this number down to a minimum. The "Peak RSS usage" tells us how much memory were resident in the operating system. It is usually way higher than the live space due to the garbage collector. "Productivity" measures the time spent in the mutator as opposed to the mutator and garbage collector. It records how effective the client is at using the memory. If productivity falls it means our allocation rate is too high in the project. The "CPU/Network" measures CPU seconds used per megabyte transferred. Again, we seek to bring this number down to an effective rate where we use very little CPU time per megabyte.

Also, note that these data are somewhat manipulated. We strip outliers from the graphs to eliminate extremities. This is done to ensure the graphs actually tell some story. There is little reason to see a 2 gigabyte memory usage because of the introduction of an error. This is easily caught while testing. Rather, the goal is to capture smaller changes over time which is much harder to see when doing tests.


Jesper Louis Andersen (


You can download this project in either zip or tar formats.

You can also clone the project with Git by running:

$ git clone git://