Skip to content

Instantly share code, notes, and snippets.

@alexvictoor
Created March 24, 2015 21:48
Show Gist options
  • Save alexvictoor/5d50bb4f745620356887 to your computer and use it in GitHub Desktop.
Save alexvictoor/5d50bb4f745620356887 to your computer and use it in GitHub Desktop.
Plotter for hdrhistogram customized with dark & green colors (for devoxxfr2015)
<html>
<head>
<meta charset="UTF-8">
<style type="text/css">
/*body {
background-color: black;
}*/
div.histo {
visibility: hidden
}
</style>
<!--Load the AJAX API-->
<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<script type="text/javascript">
if (window.File && window.FileReader && window.FileList && window.Blob) {
// Great success! All the File APIs are supported.
} else {
alert('The File APIs are not fully supported in this browser.');
}
// Load the Visualization API and the piechart package.
google.load('visualization', '1.0', {'packages':['corechart']});
// Set a callback to run when the Google Visualization API is loaded.
google.setOnLoadCallback(drawInitialChart);
var chartData = null;
var chart = null;
function setChartData(names, histos) {
while (names.length < histos.length) {
names.push('Unknown');
}
var series = [];
for (var i = 0; i < histos.length; i++) {
series = appendDataSeries(histos[i], names[i], series);
}
chartData = google.visualization.arrayToDataTable(series);
}
function drawInitialChart() {
// Connect the choose files button:
document.getElementById('files').addEventListener('change', handleFileSelect, false);
// Load some static example data:
var data1Str = document.querySelector("div#data_1").innerHTML.trim();
var data2Str = document.querySelector("div#data_2").innerHTML.trim();
var data3Str = document.querySelector("div#data_3").innerHTML.trim();
var data4Str = document.querySelector("div#data_4").innerHTML.trim();
var data5Str = document.querySelector("div#data_5").innerHTML.trim();
var histos = [data1Str, data2Str, data3Str, data4Str, data5Str];
var names = ['logback.FileAppender', 'Chronicle Text', 'Chronicle Binary', '2 FileAppenders', '2 Chronicle Binaries'];
setChartData(names, histos);
drawChart();
}
var maxPercentile = 1000000;
function drawChart() {
var ticks =
[{v:1,f:'0%'},
{v:10,f:'90%'},
{v:100,f:'99%'},
{v:1000,f:'99.9%'},
{v:10000,f:'99.99%'},
{v:100000,f:'99.999%'},
{v:1000000,f:'99.9999%'},
{v:10000000,f:'99.99999%'},
{v:100000000,f:'99.999999%'}];
var unitSelection = document.getElementById("timeUnitSelection");
var unitSelIndex = unitSelection.selectedIndex;
var unitText = unitSelection.options[unitSelIndex].innerHTML;
var options = {
title: 'Latency by Percentile Distribution',
height: 480,
// hAxis: {title: 'Percentile', minValue: 0, logScale: true, ticks:ticks },
hAxis: {
title: "Percentile",
titleTextStyle: {color: '#AAD663'},
textStyle: {color: '#AAD663'},
minValue: 1, logScale: true, ticks:ticks,
viewWindowMode:'explicit',
viewWindow:{
max:maxPercentile,
min:1
},
baselineColor: "#555555",
gridlines : {
color: "#555555"
}
},
vAxis: {
title: 'Latency (' + unitText + ')',
titleTextStyle: {color: '#AAD663'},
textStyle: {color: '#AAD663'},
minValue: 0,
baselineColor: "#555555",
gridlines : {
color: "#555555"
}
},
legend: {position: 'bottom'},
backgroundColor: "#1f1f1f",
titleTextStyle: {
color: "#a7f723"
},
legend: {
textStyle: {
color: "#a7f723"
}
}
};
if (chart == null) {
chart = new google.visualization.LineChart(document.getElementById('chart_div'));
}
// add tooptips with correct percentile text to data:
var columns = [0];
for (var i = 1; i < chartData.getNumberOfColumns(); i++) {
columns.push(i);
columns.push({
type: 'string',
properties: {
role: 'tooltip'
},
calc: (function (j) {
return function (dt, row) {
var percentile = 100.0 - (100.0/dt.getValue(row, 0));
return dt.getColumnLabel(j) + ': ' +
percentile.toPrecision(7) +
'\%\'ile = ' + dt.getValue(row, j) + ' usec'
}
})(i)
});
}
var view = new google.visualization.DataView(chartData);
view.setColumns(columns);
chart.draw(view, options);
}
</script>
<script type="text/javascript">
function appendDataSeries(histo, name, dataSeries) {
var series;
var seriesCount;
if (dataSeries.length == 0) {
series = [ ['X', name] ];
seriesCount = 1;
} else {
series = dataSeries;
series[0].push(name);
seriesCount = series[0].length - 1;
}
var lines = histo.split("\n");
var seriesIndex = 1;
for (var i = 0; i < lines.length; i++) {
var line = lines[i].trim();
var values = line.trim().split(/[ ]+/);
if (line[0] != '#' && values.length == 4) {
var y = parseFloat(values[0]);
var x = parseFloat(values[3]);
if (!isNaN(x) && !isNaN(y)) {
if (seriesIndex >= series.length) {
series.push([x]);
}
while (series[seriesIndex].length < seriesCount) {
series[seriesIndex].push(null);
}
series[seriesIndex].push(y);
seriesIndex++;
}
}
}
while (seriesIndex < series.length) {
series[seriesIndex].push(null);
seriesIndex++;
}
return series;
}
</script>
<script>
function timeUnitsSelected(evt) {
drawChart();
}
function doExport(event) {
saveSvgAsPng(document.querySelector('svg'), 'Histogram', 2.0);
}
</script>
<script>
function handleFileSelect(evt) {
var files = evt.target.files; // FileList object
var fileDisplayArea = document.getElementById('fileDisplayArea');
var names = [];
var histos = [];
var fileCount = 0;
fileDisplayArea.innerText = "file selected...\n";
// Loop through the FileList and render image files as thumbnails.
for (var i = 0, f; f = files[i]; i++) {
var reader = new FileReader();
reader.onload = (function(theFile) {
return function(e) {
histos.push(e.target.result);
names.push(escape(theFile.name));
fileDisplayArea.innerText = " Plotting input from: " + names + "\n";
setChartData(names, histos);
drawChart();
};
})(f);
// Read in the image file as a data URL.
reader.readAsText(f);
}
}
</script>
<script type="text/javascript">
(function() {
var out$ = typeof exports != 'undefined' && exports || this;
var doctype = '<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">';
function inlineImages(callback) {
var images = document.querySelectorAll('svg image');
var left = images.length;
if (left == 0) {
callback();
}
for (var i = 0; i < images.length; i++) {
(function(image) {
if (image.getAttribute('xlink:href')) {
var href = image.getAttribute('xlink:href').value;
if (/^http/.test(href) && !(new RegExp('^' + window.location.host).test(href))) {
throw new Error("Cannot render embedded images linking to external hosts.");
}
}
var canvas = document.createElement('canvas');
var ctx = canvas.getContext('2d');
var img = new Image();
img.src = image.getAttribute('xlink:href');
img.onload = function() {
canvas.width = img.width;
canvas.height = img.height;
ctx.drawImage(img, 0, 0);
image.setAttribute('xlink:href', canvas.toDataURL('image/png'));
left--;
if (left == 0) {
callback();
}
}
})(images[i]);
}
}
function styles(dom) {
var css = "";
var sheets = document.styleSheets;
for (var i = 0; i < sheets.length; i++) {
var rules = sheets[i].cssRules;
if (rules != null) {
for (var j = 0; j < rules.length; j++) {
var rule = rules[j];
if (typeof(rule.style) != "undefined") {
css += rule.selectorText + " { " + rule.style.cssText + " }\n";
}
}
}
}
var s = document.createElement('style');
s.setAttribute('type', 'text/css');
s.innerHTML = "<![CDATA[\n" + css + "\n]]>";
var defs = document.createElement('defs');
defs.appendChild(s);
return defs;
}
out$.svgAsDataUri = function(el, scaleFactor, cb) {
scaleFactor = scaleFactor || 1;
inlineImages(function() {
var outer = document.createElement("div");
var clone = el.cloneNode(true);
var width = parseInt(
clone.getAttribute('width')
|| clone.style.width
|| out$.getComputedStyle(el).getPropertyValue('width')
);
var height = parseInt(
clone.getAttribute('height')
|| clone.style.height
|| out$.getComputedStyle(el).getPropertyValue('height')
);
var xmlns = "http://www.w3.org/2000/xmlns/";
clone.setAttribute("version", "1.1");
clone.setAttributeNS(xmlns, "xmlns", "http://www.w3.org/2000/svg");
clone.setAttributeNS(xmlns, "xmlns:xlink", "http://www.w3.org/1999/xlink");
clone.setAttribute("width", width * scaleFactor);
clone.setAttribute("height", height * scaleFactor);
clone.setAttribute("viewBox", "0 0 " + width + " " + height);
outer.appendChild(clone);
clone.insertBefore(styles(clone), clone.firstChild);
var svg = doctype + outer.innerHTML;
var uri = 'data:image/svg+xml;base64,' + window.btoa(unescape(encodeURIComponent(svg)));
if (cb) {
cb(uri);
}
});
}
out$.saveSvgAsPng = function(el, name, scaleFactor) {
out$.svgAsDataUri(el, scaleFactor, function(uri) {
var image = new Image();
image.src = uri;
image.onload = function() {
var canvas = document.createElement('canvas');
canvas.width = image.width;
canvas.height = image.height;
var context = canvas.getContext('2d');
context.drawImage(image, 0, 0);
var a = document.createElement('a');
a.download = name;
a.href = canvas.toDataURL('image/png');
document.body.appendChild(a);
a.click();
}
});
}
})();
</script>
<style>
.slider-width500
{
width: 500px;
}
</style>
</head>
<body>
<h2>HdrHistogram Plotter</h2>
<input type="file" id="files" name="files[]" multiple />
<pre id="fileDisplayArea">Please select file(s) above.</pre>
<!--Div that will hold the pie chart-->
<div id="chart_div">None Loaded</div>
Latency time units:
<select name="units" size="1" id="timeUnitSelection" onChange="timeUnitsSelected()">
<option value="Latency (seconds)">seconds</option>
<option selected value="Latency (milliseconds)">milliseconds</option>
<option value="Latency (µs)">microseconds</option>
<option value="Latency (nanoseconds)">nanoseconds</option>
</select>
<button type='button' onclick='doExport(event)'>Export Image</button>
&nbsp; &nbsp; &nbsp; &nbsp;
<p>
Percentile range:
<input type="range" class="slider-width500"
min="1" max="8" value="7" step="1"
width="300px"
onchange="showValue(this.value)" />
<span id="percentileRange">99.99999%</span>
<script type="text/javascript">
function showValue(newValue) {
var x = Math.pow(10, newValue);
percentile = 100.0 - (100.0 / x);
document.getElementById("percentileRange").innerHTML=percentile + "%";
maxPercentile = x;
drawChart();
}
</script>
</p>
<p>
<br>
*** Note: Input files are expected to be in the .hgrm format produced by
HistogramLogProcessor, or the percentile output format for HdrHistogram.
See example file format
<a href="https://github.com/HdrHistogram/HdrHistogram/blob/master/GoogleChartsExample/example1.txt">here</a>
</p>
<!--<h4>Expected Service Level:</h4>-->
<!--<input type="checkbox" name="ESL" value="ESL">Plot Expected Service Level<br>-->
<!--Percentile:-->
<!--<input type="text" id="ESLPercentile0" name="ESLPercentile0" size="6" value = 90 />-->
<!--% &nbsp &nbsp &nbsp Limit:-->
<!--<input type="text" id="ESLLimit0" name="ESLLimit0" size="12"/>-->
<!--<br>-->
<!--Percentile:-->
<!--<input type="text" id="ESLPercentile1" name="ESLPercentile1" size="6" value = 99 />-->
<!--% &nbsp &nbsp &nbsp Limit:-->
<!--<input type="text" id="ESLLimit1" name="ESLLimit1" size="12"/>-->
<!--<br>-->
<!--Percentile:-->
<!--<input type="text" id="ESLPercentile2" name="ESLPercentile2" size="6" value = 99.99 />-->
<!--% &nbsp &nbsp &nbsp Limit:-->
<!--<input type="text" id="ESLLimit2" name="ESLLimit2" size="12"/>-->
<!--<br>-->
<!--Percentile:-->
<!--<input type="text" id="ESLPercentile3" name="ESLPercentile2" size="6" value="100.0" readonly/>-->
<!--% &nbsp &nbsp &nbsp Limit:-->
<!--<input type="text" id="ESLLimit3" name="ESLLimit2" size="12"/>-->
<div id="data_1" class="histo">
Value Percentile TotalCount 1/(1-Percentile)
11729.00000 0.000000000000 2 1.00
13196.00000 0.100000000000 12028 1.11
13928.00000 0.200000000000 22540 1.25
14661.00000 0.300000000000 39863 1.43
14662.00000 0.400000000000 49142 1.67
15394.00000 0.500000000000 54545 2.00
15395.00000 0.550000000000 60579 2.22
15395.00000 0.600000000000 60579 2.50
16127.00000 0.650000000000 66757 2.86
16128.00000 0.700000000000 75916 3.33
16128.00000 0.750000000000 75916 4.00
16860.00000 0.775000000000 78302 4.44
16861.00000 0.800000000000 83325 5.00
16861.00000 0.825000000000 83325 5.71
17594.00000 0.850000000000 85534 6.67
19060.00000 0.875000000000 88526 8.00
19793.00000 0.887500000000 89606 8.89
20526.00000 0.900000000000 90587 10.00
21259.00000 0.912500000000 91350 11.43
22725.00000 0.925000000000 92688 13.33
24191.00000 0.937500000000 93869 16.00
24924.00000 0.943750000000 94428 17.78
25658.00000 0.950000000000 95140 20.00
27124.00000 0.956250000000 95790 22.86
29323.00000 0.962500000000 96326 26.67
34455.00000 0.968750000000 96885 32.00
43252.00000 0.971875000000 97189 35.56
87969.00000 0.975000000000 97502 40.00
137818.00000 0.978125000000 97854 45.71
140016.00000 0.981250000000 98135 53.33
141483.00000 0.984375000000 98452 64.00
142949.00000 0.985937500000 98595 71.11
145149.00000 0.987500000000 98758 80.00
148814.00000 0.989062500000 98924 91.43
155412.00000 0.990625000000 99067 106.67
172273.00000 0.992187500000 99219 128.00
175204.00000 0.992968750000 99301 142.22
177404.00000 0.993750000000 99376 160.00
181069.00000 0.994531250000 99467 182.86
184002.00000 0.995312500000 99537 213.33
190599.00000 0.996093750000 99612 256.00
195731.00000 0.996484375000 99654 284.44
203061.00000 0.996875000000 99688 320.00
214790.00000 0.997265625000 99728 365.71
230918.00000 0.997656250000 99768 426.67
252910.00000 0.998046875000 99805 512.00
294695.00000 0.998242187500 99825 568.89
305691.00000 0.998437500000 99844 640.00
311557.00000 0.998632812500 99865 731.43
315955.00000 0.998828125000 99887 853.33
318887.00000 0.999023437500 99904 1024.00
320353.00000 0.999121093750 99916 1137.78
321087.00000 0.999218750000 99922 1280.00
326217.00000 0.999316406250 99932 1462.86
330617.00000 0.999414062500 99943 1706.67
338681.00000 0.999511718750 99952 2048.00
342345.00000 0.999560546875 99957 2275.56
349677.00000 0.999609375000 99961 2560.00
359207.00000 0.999658203125 99966 2925.71
362871.00000 0.999707031250 99972 3413.33
377533.00000 0.999755859375 99976 4096.00
406123.00000 0.999780273438 99979 4551.11
428115.00000 0.999804687500 99981 5120.00
442043.00000 0.999829101563 99983 5851.43
466235.00000 0.999853515625 99986 6826.67
523415.00000 0.999877929688 99988 8192.00
582795.00000 0.999890136719 99990 9102.22
588659.00000 0.999902343750 99991 10240.00
669295.00000 0.999914550781 99992 11702.86
902415.00000 0.999926757813 99993 13653.33
981587.00000 0.999938964844 99994 16384.00
1022639.00000 0.999945068359 99995 18204.44
1051959.00000 0.999951171875 99996 20480.00
1051959.00000 0.999957275391 99996 23405.71
1108407.00000 0.999963378906 99997 27306.67
1108407.00000 0.999969482422 99997 32768.00
2216815.00000 0.999972534180 99998 36408.89
2216815.00000 0.999975585938 99998 40960.00
2216815.00000 0.999978637695 99998 46811.43
20689535.00000 0.999981689453 99999 54613.33
20689535.00000 0.999984741211 99999 65536.00
20689535.00000 0.999986267090 99999 72817.78
20689535.00000 0.999987792969 99999 81920.00
20689535.00000 0.999989318848 99999 93622.86
32555775.00000 0.999990844727 100000 109226.67
32555775.00000 1.000000000000 100000
#[Mean = 20391.19616, StdDeviation = 124922.53969]
#[Max = 32555775.00000, Total count = 100000]
#[Buckets = 8, SubBuckets = 262144]
</div>
<div id='data_2' class='histo'>
Value Percentile TotalCount 1/(1-Percentile)
10263.00000 0.000000000000 103 1.00
10996.00000 0.100000000000 40832 1.11
10996.00000 0.200000000000 40832 1.25
10996.00000 0.300000000000 40832 1.43
10996.00000 0.400000000000 40832 1.67
11729.00000 0.500000000000 71553 2.00
11729.00000 0.550000000000 71553 2.22
11729.00000 0.600000000000 71553 2.50
11729.00000 0.650000000000 71553 2.86
11729.00000 0.700000000000 71553 3.33
11730.00000 0.750000000000 76876 4.00
12462.00000 0.775000000000 79266 4.44
12463.00000 0.800000000000 80037 5.00
13928.00000 0.825000000000 83513 5.71
14661.00000 0.850000000000 86422 6.67
14662.00000 0.875000000000 87911 8.00
15394.00000 0.887500000000 89367 8.89
15395.00000 0.900000000000 90958 10.00
16127.00000 0.912500000000 91449 11.43
16861.00000 0.925000000000 93019 13.33
18327.00000 0.937500000000 93817 16.00
21259.00000 0.943750000000 94437 17.78
32989.00000 0.950000000000 95014 20.00
34454.00000 0.956250000000 95889 22.86
35187.00000 0.962500000000 96768 26.67
35188.00000 0.968750000000 97256 32.00
35188.00000 0.971875000000 97256 35.56
35920.00000 0.975000000000 97517 40.00
35921.00000 0.978125000000 97868 45.71
36654.00000 0.981250000000 98225 53.33
37387.00000 0.984375000000 98524 64.00
38120.00000 0.985937500000 98807 71.11
38120.00000 0.987500000000 98807 80.00
38853.00000 0.989062500000 99027 91.43
39586.00000 0.990625000000 99156 106.67
40319.00000 0.992187500000 99230 128.00
41052.00000 0.992968750000 99300 142.22
42519.00000 0.993750000000 99382 160.00
44718.00000 0.994531250000 99456 182.86
47650.00000 0.995312500000 99540 213.33
49849.00000 0.996093750000 99614 256.00
51316.00000 0.996484375000 99651 284.44
53515.00000 0.996875000000 99688 320.00
56447.00000 0.997265625000 99734 365.71
58646.00000 0.997656250000 99768 426.67
64510.00000 0.998046875000 99806 512.00
68176.00000 0.998242187500 99825 568.89
71108.00000 0.998437500000 99844 640.00
74773.00000 0.998632812500 99866 731.43
80638.00000 0.998828125000 99883 853.33
92367.00000 0.999023437500 99903 1024.00
96032.00000 0.999121093750 99914 1137.78
101164.00000 0.999218750000 99923 1280.00
106296.00000 0.999316406250 99932 1462.86
114360.00000 0.999414062500 99943 1706.67
122423.00000 0.999511718750 99952 2048.00
130487.00000 0.999560546875 99958 2275.56
133420.00000 0.999609375000 99962 2560.00
139283.00000 0.999658203125 99966 2925.71
149547.00000 0.999707031250 99971 3413.33
170806.00000 0.999755859375 99976 4096.00
176670.00000 0.999780273438 99979 4551.11
189865.00000 0.999804687500 99981 5120.00
195731.00000 0.999829101563 99983 5851.43
218456.00000 0.999853515625 99986 6826.67
260241.00000 0.999877929688 99988 8192.00
327683.00000 0.999890136719 99990 9102.22
333549.00000 0.999902343750 99991 10240.00
348943.00000 0.999914550781 99992 11702.86
359207.00000 0.999926757813 99993 13653.33
453773.00000 0.999938964844 99994 16384.00
538079.00000 0.999945068359 99995 18204.44
3382399.00000 0.999951171875 99996 20480.00
3382399.00000 0.999957275391 99996 23405.71
4851487.00000 0.999963378906 99997 27306.67
4851487.00000 0.999969482422 99997 32768.00
9307135.00000 0.999972534180 99998 36408.89
9307135.00000 0.999975585938 99998 40960.00
9307135.00000 0.999978637695 99998 46811.43
28826623.00000 0.999981689453 99999 54613.33
28826623.00000 0.999984741211 99999 65536.00
28826623.00000 0.999986267090 99999 72817.78
28826623.00000 0.999987792969 99999 81920.00
28826623.00000 0.999989318848 99999 93622.86
29467391.00000 0.999990844727 100000 109226.67
29467391.00000 1.000000000000 100000
#[Mean = 14171.86581, StdDeviation = 135084.99831]
#[Max = 29467391.00000, Total count = 100000]
#[Buckets = 8, SubBuckets = 262144]
</div>
<div id='data_3' class='histo'>
Value Percentile TotalCount 1/(1-Percentile)
13928.00000 0.000000000000 2649 1.00
14661.00000 0.100000000000 21743 1.11
14661.00000 0.200000000000 21743 1.25
14662.00000 0.300000000000 36366 1.43
15394.00000 0.400000000000 48515 1.67
15395.00000 0.500000000000 62313 2.00
15395.00000 0.550000000000 62313 2.22
15395.00000 0.600000000000 62313 2.50
16127.00000 0.650000000000 70411 2.86
16127.00000 0.700000000000 70411 3.33
16128.00000 0.750000000000 82407 4.00
16128.00000 0.775000000000 82407 4.44
16128.00000 0.800000000000 82407 5.00
16860.00000 0.825000000000 83317 5.71
16861.00000 0.850000000000 85166 6.67
18327.00000 0.875000000000 88495 8.00
19059.00000 0.887500000000 88807 8.89
19060.00000 0.900000000000 91397 10.00
19060.00000 0.912500000000 91397 11.43
21259.00000 0.925000000000 92737 13.33
24191.00000 0.937500000000 93938 16.00
26391.00000 0.943750000000 94389 17.78
33722.00000 0.950000000000 95008 20.00
34455.00000 0.956250000000 95711 22.86
35188.00000 0.962500000000 96623 26.67
35920.00000 0.968750000000 96943 32.00
35921.00000 0.971875000000 97338 35.56
36654.00000 0.975000000000 97767 40.00
37386.00000 0.978125000000 97855 45.71
38120.00000 0.981250000000 98308 53.33
38853.00000 0.984375000000 98558 64.00
39586.00000 0.985937500000 98766 71.11
39586.00000 0.987500000000 98766 80.00
40319.00000 0.989062500000 98913 91.43
41785.00000 0.990625000000 99089 106.67
43984.00000 0.992187500000 99230 128.00
45451.00000 0.992968750000 99311 142.22
47649.00000 0.993750000000 99376 160.00
50582.00000 0.994531250000 99455 182.86
54248.00000 0.995312500000 99538 213.33
57913.00000 0.996093750000 99610 256.00
59379.00000 0.996484375000 99650 284.44
61578.00000 0.996875000000 99692 320.00
65243.00000 0.997265625000 99729 365.71
68909.00000 0.997656250000 99770 426.67
71841.00000 0.998046875000 99805 512.00
75506.00000 0.998242187500 99826 568.89
78439.00000 0.998437500000 99849 640.00
82837.00000 0.998632812500 99865 731.43
87969.00000 0.998828125000 99885 853.33
94566.00000 0.999023437500 99904 1024.00
98231.00000 0.999121093750 99914 1137.78
101897.00000 0.999218750000 99922 1280.00
107762.00000 0.999316406250 99933 1462.86
115826.00000 0.999414062500 99942 1706.67
128288.00000 0.999511718750 99952 2048.00
136352.00000 0.999560546875 99957 2275.56
148081.00000 0.999609375000 99961 2560.00
167140.00000 0.999658203125 99966 2925.71
176670.00000 0.999707031250 99971 3413.33
197196.00000 0.999755859375 99976 4096.00
207459.00000 0.999780273438 99979 4551.11
218456.00000 0.999804687500 99981 5120.00
233850.00000 0.999829101563 99983 5851.43
264639.00000 0.999853515625 99986 6826.67
277835.00000 0.999877929688 99988 8192.00
350409.00000 0.999890136719 99990 9102.22
355541.00000 0.999902343750 99991 10240.00
393661.00000 0.999914550781 99992 11702.86
493359.00000 0.999926757813 99993 13653.33
606987.00000 0.999938964844 99994 16384.00
690555.00000 0.999945068359 99995 18204.44
691291.00000 0.999951171875 99996 20480.00
691291.00000 0.999957275391 99996 23405.71
881155.00000 0.999963378906 99997 27306.67
881155.00000 0.999969482422 99997 32768.00
1200047.00000 0.999972534180 99998 36408.89
1200047.00000 0.999975585938 99998 40960.00
1200047.00000 0.999978637695 99998 46811.43
2100991.00000 0.999981689453 99999 54613.33
2100991.00000 0.999984741211 99999 65536.00
2100991.00000 0.999986267090 99999 72817.78
2100991.00000 0.999987792969 99999 81920.00
2100991.00000 0.999989318848 99999 93622.86
16755903.00000 0.999990844727 100000 109226.67
16755903.00000 1.000000000000 100000
#[Mean = 17324.32120, StdDeviation = 54180.65751]
#[Max = 16755903.00000, Total count = 100000]
#[Buckets = 7, SubBuckets = 262144]
</div>
<div id='data_4' class='histo'>
Value Percentile TotalCount 1/(1-Percentile)
22725.00000 0.000000000000 1 1.00
25657.00000 0.100000000000 11286 1.11
26390.00000 0.200000000000 21727 1.25
27123.00000 0.300000000000 32726 1.43
27124.00000 0.400000000000 41806 1.67
27857.00000 0.500000000000 54282 2.00
28589.00000 0.550000000000 56105 2.22
28590.00000 0.600000000000 65403 2.50
28590.00000 0.650000000000 65403 2.86
29323.00000 0.700000000000 72380 3.33
30056.00000 0.750000000000 77517 4.00
30056.00000 0.775000000000 77517 4.44
30789.00000 0.800000000000 80463 5.00
32255.00000 0.825000000000 83186 5.71
33721.00000 0.850000000000 85080 6.67
36653.00000 0.875000000000 87589 8.00
38119.00000 0.887500000000 88876 8.89
39585.00000 0.900000000000 90012 10.00
41052.00000 0.912500000000 91383 11.43
43252.00000 0.925000000000 92540 13.33
48383.00000 0.937500000000 93769 16.00
57913.00000 0.943750000000 94396 17.78
88701.00000 0.950000000000 95003 20.00
115092.00000 0.956250000000 95629 22.86
137085.00000 0.962500000000 96255 26.67
158343.00000 0.968750000000 96875 32.00
168607.00000 0.971875000000 97192 35.56
179603.00000 0.975000000000 97512 40.00
189866.00000 0.978125000000 97828 45.71
200128.00000 0.981250000000 98125 53.33
210392.00000 0.984375000000 98438 64.00
215523.00000 0.985937500000 98595 71.11
220655.00000 0.987500000000 98760 80.00
227986.00000 0.989062500000 98912 91.43
236050.00000 0.990625000000 99064 106.67
244846.00000 0.992187500000 99225 128.00
249245.00000 0.992968750000 99297 142.22
257308.00000 0.993750000000 99375 160.00
267571.00000 0.994531250000 99454 182.86
277835.00000 0.995312500000 99536 213.33
291763.00000 0.996093750000 99610 256.00
302027.00000 0.996484375000 99652 284.44
315221.00000 0.996875000000 99689 320.00
325485.00000 0.997265625000 99727 365.71
338679.00000 0.997656250000 99766 426.67
353341.00000 0.998046875000 99805 512.00
362139.00000 0.998242187500 99825 568.89
370203.00000 0.998437500000 99844 640.00
378999.00000 0.998632812500 99864 731.43
388529.00000 0.998828125000 99885 853.33
393661.00000 0.999023437500 99903 1024.00
400259.00000 0.999121093750 99913 1137.78
407589.00000 0.999218750000 99922 1280.00
418585.00000 0.999316406250 99934 1462.86
422983.00000 0.999414062500 99942 1706.67
438377.00000 0.999511718750 99952 2048.00
451573.00000 0.999560546875 99957 2275.56
455239.00000 0.999609375000 99961 2560.00
473565.00000 0.999658203125 99967 2925.71
486027.00000 0.999707031250 99971 3413.33
510219.00000 0.999755859375 99976 4096.00
563735.00000 0.999780273438 99979 4551.11
592323.00000 0.999804687500 99981 5120.00
785123.00000 0.999829101563 99983 5851.43
1051231.00000 0.999853515625 99986 6826.67
1099615.00000 0.999877929688 99988 8192.00
1216903.00000 0.999890136719 99990 9102.22
1237431.00000 0.999902343750 99991 10240.00
1241831.00000 0.999914550781 99992 11702.86
1422167.00000 0.999926757813 99993 13653.33
1441959.00000 0.999938964844 99994 16384.00
1523327.00000 0.999945068359 99995 18204.44
1756447.00000 0.999951171875 99996 20480.00
1756447.00000 0.999957275391 99996 23405.71
2273263.00000 0.999963378906 99997 27306.67
2273263.00000 0.999969482422 99997 32768.00
2802543.00000 0.999972534180 99998 36408.89
2802543.00000 0.999975585938 99998 40960.00
2802543.00000 0.999978637695 99998 46811.43
3036399.00000 0.999981689453 99999 54613.33
3036399.00000 0.999984741211 99999 65536.00
3036399.00000 0.999986267090 99999 72817.78
3036399.00000 0.999987792969 99999 81920.00
3036399.00000 0.999989318848 99999 93622.86
7936991.00000 0.999990844727 100000 109226.67
7936991.00000 1.000000000000 100000
#[Mean = 37447.92750, StdDeviation = 50076.25530]
#[Max = 7936991.00000, Total count = 100000]
#[Buckets = 6, SubBuckets = 262144]
</div>
<div id='data_5' class='histo'>
Value Percentile TotalCount 1/(1-Percentile)
27856.00000 0.000000000000 27 1.00
28590.00000 0.100000000000 11610 1.11
30056.00000 0.200000000000 23068 1.25
30789.00000 0.300000000000 49562 1.43
30789.00000 0.400000000000 49562 1.67
30790.00000 0.500000000000 51164 2.00
31522.00000 0.550000000000 66989 2.22
31522.00000 0.600000000000 66989 2.50
31522.00000 0.650000000000 66989 2.86
32255.00000 0.700000000000 72104 3.33
32988.00000 0.750000000000 75020 4.00
33721.00000 0.775000000000 78145 4.44
34454.00000 0.800000000000 81779 5.00
34455.00000 0.825000000000 83480 5.71
35920.00000 0.850000000000 85046 6.67
40319.00000 0.875000000000 87508 8.00
44717.00000 0.887500000000 88836 8.89
49116.00000 0.900000000000 90302 10.00
50582.00000 0.912500000000 92140 11.43
51315.00000 0.925000000000 93220 13.33
52048.00000 0.937500000000 94265 16.00
52049.00000 0.943750000000 94450 17.78
52781.00000 0.950000000000 95097 20.00
53514.00000 0.956250000000 95770 22.86
54247.00000 0.962500000000 96317 26.67
54981.00000 0.968750000000 96948 32.00
55714.00000 0.971875000000 97337 35.56
56447.00000 0.975000000000 97632 40.00
57180.00000 0.978125000000 97864 45.71
58646.00000 0.981250000000 98152 53.33
61578.00000 0.984375000000 98485 64.00
63777.00000 0.985937500000 98624 71.11
65976.00000 0.987500000000 98752 80.00
69642.00000 0.989062500000 98910 91.43
74773.00000 0.990625000000 99081 106.67
77706.00000 0.992187500000 99234 128.00
79905.00000 0.992968750000 99319 142.22
82105.00000 0.993750000000 99375 160.00
85770.00000 0.994531250000 99462 182.86
90168.00000 0.995312500000 99540 213.33
97498.00000 0.996093750000 99611 256.00
101897.00000 0.996484375000 99653 284.44
107761.00000 0.996875000000 99688 320.00
115093.00000 0.997265625000 99729 365.71
121690.00000 0.997656250000 99766 426.67
130487.00000 0.998046875000 99806 512.00
138551.00000 0.998242187500 99825 568.89
146615.00000 0.998437500000 99844 640.00
157610.00000 0.998632812500 99864 731.43
168607.00000 0.998828125000 99884 853.33
178870.00000 0.999023437500 99903 1024.00
186201.00000 0.999121093750 99913 1137.78
203061.00000 0.999218750000 99922 1280.00
220655.00000 0.999316406250 99932 1462.86
242647.00000 0.999414062500 99942 1706.67
294697.00000 0.999511718750 99952 2048.00
335015.00000 0.999560546875 99957 2275.56
358473.00000 0.999609375000 99961 2560.00
384865.00000 0.999658203125 99966 2925.71
432513.00000 0.999707031250 99971 3413.33
552007.00000 0.999755859375 99976 4096.00
593791.00000 0.999780273438 99979 4551.11
699351.00000 0.999804687500 99981 5120.00
730143.00000 0.999829101563 99983 5851.43
779259.00000 0.999853515625 99987 6826.67
810779.00000 0.999877929688 99988 8192.00
892883.00000 0.999890136719 99990 9102.22
1126735.00000 0.999902343750 99991 10240.00
1293143.00000 0.999914550781 99992 11702.86
1315135.00000 0.999926757813 99993 13653.33
1484479.00000 0.999938964844 99994 16384.00
2287199.00000 0.999945068359 99995 18204.44
2364175.00000 0.999951171875 99996 20480.00
2364175.00000 0.999957275391 99996 23405.71
2632479.00000 0.999963378906 99997 27306.67
2632479.00000 0.999969482422 99997 32768.00
3850111.00000 0.999972534180 99998 36408.89
3850111.00000 0.999975585938 99998 40960.00
3850111.00000 0.999978637695 99998 46811.43
23689343.00000 0.999981689453 99999 54613.33
23689343.00000 0.999984741211 99999 65536.00
23689343.00000 0.999986267090 99999 72817.78
23689343.00000 0.999987792969 99999 81920.00
23689343.00000 0.999989318848 99999 93622.86
33619455.00000 0.999990844727 100000 109226.67
33619455.00000 1.000000000000 100000
#[Mean = 35164.27020, StdDeviation = 132155.36340]
#[Max = 33619455.00000, Total count = 100000]
#[Buckets = 9, SubBuckets = 262144]
</div>
</body>
</html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment