<div dir="ltr">Hi folk,<div><br></div><div>A new release of HDR histogram for Erlang, Elixir and LFE with the following</div><div>community contributions and fixes:</div><div><br></div><div>* Bugfix for NIF allocated resource freeing by @timofey-barmin</div><div>* Bugfix for CentOS by @mniec</div><div>* Rebar3 support by @jlouis</div><div><br></div><div><a href="https://github.com/HdrHistogram/hdr_histogram_erl">https://github.com/HdrHistogram/hdr_histogram_erl</a><br></div><div><br></div><div>hdr-histogram-erl is a<span style="font-size:12.8px"> high dynamic range </span><span style="font-size:12.8px"><span class="">histogram</span></span><span style="font-size:12.8px"> that supports recording and analyzing sampled data points across a configurable range with configurable precision within that range. The precision is expressed as a number of significant figures in the recording.</span></div><div><br></div><div><span style="font-size:12.8px"><a href="https://github.com/HdrHistogram/hdr_histogram_erl">https://github.com/HdrHistogram/hdr_histogram_erl</a></span></div><div><span style="font-size:12.8px"><br></span></div><div><span style="font-size:12.8px">This </span><span style="font-size:12.8px"><span class="">HDR</span></span><span style="font-size:12.8px"> </span><span style="font-size:12.8px"><span class="">histogram</span></span><span style="font-size:12.8px"> implementation is designed for recording </span><span style="font-size:12.8px">histograms</span><span style="font-size:12.8px"> of value measurements in latency sensitive environments. Although the native recording times can be as low as single digit nanoseconds there is added overhead in this wrapper/binding due to both the frontend overhead of converting from native C to the NIF interface, and the </span><span style="font-size:12.8px"><span class="">erlang</span></span><span style="font-size:12.8px"> overhead incurred calling into the NIFs. </span><br style="font-size:12.8px"><br style="font-size:12.8px"><span style="font-size:12.8px">A distinct advantage of this </span><span style="font-size:12.8px"><span class="">histogram</span></span><span style="font-size:12.8px"> implementation is constant space and recording (time) overhead with an ability to recycle and reset instances whilst reclaiming already allocated space for reuse thereby reducing allocation cost and garbage collection overhead in the BEAM where repeated or continuous usage is likely. For example, a gen_server recording metrics continuously and resetting and logging </span><span style="font-size:12.8px"><span class="">histogram</span></span><span style="font-size:12.8px"> dumps on a periodic or other windowed basis.</span><br></div><div><span style="font-size:12.8px"><br></span></div><div><span style="font-size:12.8px">There's now quite a few folk using this library during development and production. If you depend on it in some way please ping and make yourself known. Very interested in collecting experiences and hearing how this can be improved for your use case.</span></div><div><span style="font-size:12.8px"><br></span></div><div><span style="font-size:12.8px">Enjoy!</span></div><div><span style="font-size:12.8px"><br></span></div><div><span style="font-size:12.8px">Cheers,</span></div><div><span style="font-size:12.8px"><br></span></div><div><span style="font-size:12.8px">Darach.</span></div></div>