These are chat archives for HdrHistogram/HdrHistogram

26th
Dec 2017
Julian Berman
@Julian
Dec 26 2017 15:52
Hi.
I'm trying to understand/explain the performance of an application with a tracing JIT during warmup, and my idea for doing so is to take sampled HDRHistograms every n seconds and then plot those as a 3D histogram over time
I don't suppose anyone's done that before?
(I don't think it'll be difficult for me to write I guess, most of the work will just be reminding myself how to get the right values out of a HDRHistogram to pass into some non-HDRHistogram-plotting software, which I think I always have trouble with.)
Marshall Pierce
@marshallpierce
Dec 26 2017 17:26
Hi Julian, that's a pretty sensible use case. You can use the hdr histogram "log" format, which is designed to express just such a thing. Basically, it's a mostly structured text file consisting of a sequence of base64'd serialized histograms with some other metadata to identify their timestamp in the sequence, etc.
For plotting, that will probably consist of choosing the style of iteration you want (recorded values is probably a good starting point if you don't have very large data volume, percentile/quantile if you do) and producing some sort of intermediate output suitable for your plotting tool of choice (csv? directly driving plotting from your histogram-processing code?)
Marshall Pierce
@marshallpierce
Dec 26 2017 17:32
Just make sure you iterate over all the histograms in such a way that they will have the same bounds or otherwise be sensible when plotted together.
Julian Berman
@Julian
Dec 26 2017 18:59
@marshallpierce awesome, thanks for the pointer on log, will have a look at that
Marshall Pierce
@marshallpierce
Dec 26 2017 19:55
Since the TypeScript implementation supports parsing that, consider writing your visualization in TS if that fits your deployment model. Or, since I just added support to it to the Rust implantation, could give me some feedback on that API design. ;)