https://dotat.at/@/2022-07-15-histogram.html
I have reached the point in my main project (qp-trie for BIND) where I want to collect performance statistics. Things like:
- how long it takes to compact a trie;
- how much memory was recovered by compaction;
- size of trie before and after compaction.
In a wider context, those using BIND for large authoritative server systems would like better statistics on things like:
- incoming and outgoing zone transfer times;
- zone refresh query latency.
For my own purposes, I'm no longer satisfied with summarizing performance with just the mean and standard deviation; and in an operational context, it's useful to know about the existence of outliers (rare outliers can be hidden by simple summary statistics) and the size of an outlier can be a useful clue.
So, we need histograms!
hg64
I have written a proof-of-concept histogram data structure called
hg64
, which you can get from:
It can load 1 million data items in about 5ms (5ns per item), and uses a few KiB of memory.
Here I will write about how hg64
came to be.
( Read more... )