add sample page to display benchmark results

This commit is contained in:
Benjamin Dauvergne 2014-01-30 15:53:29 +01:00
parent 888bb922bf
commit b3eb40097d
2 changed files with 197 additions and 0 deletions

98
tools/vis.html Normal file
View File

@ -0,0 +1,98 @@
<html>
<head>
<title>Candlestick Chart</title>
<script type="text/javascript" src="http://cachedcommons.org/cache/protovis/3.2.0/javascripts/protovis.js"></script>
<script type="text/javascript" src="vix.js"></script>
<style type="text/css">
#fig {
position: relative;
margin: auto;
width: 900px;
height: 220px;
}
</style>
</head>
<body>
<table border="1">
<thead>
<tr>
<th>Path</th>
<th>Min</th>
<th>Mean</th>
<th>Std</th>
<th>Max</th>
</tr>
</thead>
<tbody>
<script>
for (var i = 0; i < vix.length; i++) {
var d = vix[i];
document.write("<tr><td>" + d.path + "</td><td>" + d.min + "</td><td>" + d.mean + "</td><td>" + d.std + "</td><td>" + d.max + "</td></tr>");
}
</script>
</tbody>
<caption>Datas</caption>
</table>
<div id="center"><div id="fig">
<script type="text/javascript+protovis">
/* Scales. */
var w = 840,
h = 200,
x = pv.Scale.ordinal(vix, function(d) d.path).split(20, w-20),
y = pv.Scale.linear(vix, function(d) d.min, function(d) d.max).range(0, h).nice();
var vis = new pv.Panel()
.width(w)
.height(h)
.margin(10)
.left(30);
/* Paths. */
vis.add(pv.Rule)
.data(vix)
.strokeStyle("#eee")
.anchor("bottom").add(pv.Label)
.left(function (d) x(d.path))
.text(function (d) d.path);
/* Time. */
vis.add(pv.Rule)
.data(y.ticks(7))
.bottom(y)
.left(-10)
.right(-10)
.strokeStyle(function(d) d % 10 ? "#ccc" : "#333")
.anchor("left").add(pv.Label)
.textStyle(function(d) d % 10 ? "#999" : "#333")
.text(y.tickFormat)
.anchor("top").add(pv.Label)
.top(-12)
.left(-20)
.font("bold 10px sans-serif")
.text("ms");
/* Candlestick. */
vis.add(pv.Rule)
.data(vix)
.left(function(d) x(d.path))
.bottom(function(d) y(d.mean - 2*Math.sqrt(d.std)))
.height(function(d) 4*Math.sqrt(d.std))
.strokeStyle("#ae13ff")
.lineWidth(10)
.add(pv.Rule)
.bottom(function(d) y(Math.min(d.min, d.max)))
.height(function(d) Math.abs(y(d.max) - y(d.min)))
.strokeStyle("#ae1325")
.lineWidth(3);
vis.render();
</script>
</div></div></body>
</html>

99
tools/vix.js Normal file
View File

@ -0,0 +1,99 @@
var vix =
[
{
"std": 6.2838809338783808,
"min": 48.87890815734863,
"max": 117.35892295837402,
"median": 51.397800445556641,
"path": "/inbox/",
"mean": 52.986168217014622
},
{
"std": 5.0712567658069432,
"min": 25.820016860961914,
"max": 93.6269760131836,
"median": 27.652978897094727,
"path": "/outbox/",
"mean": 28.302782935065192
},
{
"std": 17.959943957167141,
"min": 9.320974349975586,
"max": 77.15797424316406,
"median": 13.239860534667969,
"path": "/inbox/66/",
"mean": 22.619637927493535
},
{
"std": 16.905766906795069,
"min": 9.452104568481445,
"max": 104.50601577758789,
"median": 55.394887924194336,
"path": "/inbox/28/",
"mean": 53.443717956542969
},
{
"std": 20.719964490781539,
"min": 9.491920471191406,
"max": 110.88180541992188,
"median": 14.102935791015625,
"path": "/inbox/55/",
"mean": 24.875629270398939
},
{
"std": 19.056132820228122,
"min": 9.421825408935547,
"max": 74.40400123596191,
"median": 13.787031173706055,
"path": "/inbox/73/",
"mean": 23.699891889417493
},
{
"std": 19.59120154967297,
"min": 9.75489616394043,
"max": 70.6789493560791,
"median": 14.936923980712891,
"path": "/inbox/81/",
"mean": 25.634705053793418
},
{
"std": 19.731671888538365,
"min": 9.202957153320312,
"max": 86.27200126647949,
"median": 14.432907104492188,
"path": "/inbox/69/",
"mean": 24.82308697056126
},
{
"std": 19.466554907855816,
"min": 9.569168090820312,
"max": 67.42000579833984,
"median": 14.648199081420898,
"path": "/inbox/45/",
"mean": 24.809984258703285
},
{
"std": 20.643612271940331,
"min": 10.020017623901367,
"max": 77.55303382873535,
"median": 15.462160110473633,
"path": "/inbox/60/",
"mean": 26.355472770897119
},
{
"std": 20.20322737222353,
"min": 9.835958480834961,
"max": 76.26891136169434,
"median": 15.053033828735352,
"path": "/inbox/74/",
"mean": 25.443387675929714
},
{
"std": 20.45568343764522,
"min": 9.819984436035156,
"max": 79.49686050415039,
"median": 15.069961547851562,
"path": "/inbox/62/",
"mean": 25.949336387015677
}
];