HdrHistogram.NET
HdrHistogram.NET copied to clipboard
Cannot read LongHistogram back from histogram log when recorded value count exceeds ~10000
Run the following code to reproduce.
var histogram = new LongHistogram(TimeSpan.FromMinutes(40).Ticks, 4);
var maxValue = TimeSpan.FromMinutes(20).Ticks;
var count = 10000;
for (var i = 0; i < count; i++)
{
histogram.RecordValue(Random.Shared.NextInt64(maxValue));
}
await using var ms = new MemoryStream();
HistogramLogWriter.Write(ms, DateTimeOffset.FromUnixTimeMilliseconds(histogram.StartTimeStamp).UtcDateTime, histogram);
ms.Position = 0;
var readBackHistograms = new HistogramLogReader(ms).ReadHistograms().ToList();
When count
is 10000 or more, the last line consistently throws the following exception:
System.ArgumentException: 'The buffer does not contain the indicated payload amount'
But when count
is set to 9000, it runs successfully without issue.
I'm using HdrHistogram v2.5.0 on .NET 8.