Library for easy and nice (micro) benchmarking in Elixir. Benchee allows you to compare the performance of different pieces of code at a glance. It is also versatile and extensible, relying only on functions. There are also a bunch of plugins to draw pretty graphs and more! Benchee runs each of your functions for a given amount of time after an initial warmup, it then measures their run time and optionally memory consumption. It then shows different statistical values like average, standard deviation etc. The aforementioned plugins like benchee_html make it possible to generate nice-looking HTML reports, where individual graphs can also be exported as PNG images. first runs the functions for a given warmup time without recording the results, to simulate a "warm"/running system. Plugin/extensible-friendly architecture so you can use different formats to display benchmarking results as HTML, markdown, JSON, and more.
Features
- Provides you with lots of statistics
- Measure not only time, but also measure memory and reductions
- Profile right after benchmarking
- Well documented & well tested
- Hooks to execute something before/after a benchmarking invocation
- Measure with up to nanosecond precision