3 <title>Benchmarking for Plots with Many Points
</title>
5 <script type=
"text/javascript" src=
"../excanvas.js"></script>
7 <script type=
"text/javascript" src=
"../strftime/strftime-min.js"></script>
8 <script type=
"text/javascript" src=
"../rgbcolor/rgbcolor.js"></script>
9 <script type=
"text/javascript" src=
"../dygraph-canvas.js"></script>
10 <script type=
"text/javascript" src=
"../dygraph.js"></script>
13 <p>Plot which can be easily generated with different numbers of points for
14 benchmarking/profiling and improving performance of dygraphs.
</p>
16 <input type=
"text" id=
"num_points_input" size=
"20"
17 onchange=
"updatePlot();"></p>
19 <input type=
"text" id=
"num_series_input" size=
"20"
20 onchange=
"updatePlot();"></p>
21 <p>Roll period (in points):
22 <input type=
"text" id=
"roll_period_input" size=
"20"
23 onchange=
"updatePlot();"></p>
27 <div id=
"message"></div>
29 <script type=
"text/javascript">
32 updatePlot = function() {
33 document.getElementById('message').innerHTML =
"";
34 var plotDiv = document.getElementById('plot');
35 plotDiv.innerHTML = 'Redrawing...';
37 parseInt(document.getElementById('num_points_input').value);
39 parseInt(document.getElementById('num_series_input').value);
43 var xmax =
2.0 * Math.PI;
45 var delta = (xmax - xmin) / (numPoints -
1);
47 for (var i =
0; i < numPoints; ++i) {
48 var x = xmin + delta * i;
50 for (var j =
0; j < numSeries; j++) {
51 var y = Math.sin(x + (j * adj));
57 for (var j =
0; j < numSeries; j++) {
58 labels.push(
"sin(x + " + (j*adj) +
")");
60 var rollPeriod = parseInt(
61 document.getElementById('roll_period_input').value);
62 var opts = {labels: labels, rollPeriod: rollPeriod};
63 var start = new Date();
64 plot = new Dygraph(plotDiv, data, opts);
66 document.getElementById('message').innerHTML =
67 "completed in " + (end - start) +
" milliseconds.";
70 document.getElementById('num_points_input').value = '
100';
71 document.getElementById('num_series_input').value = '
1';
72 document.getElementById('roll_period_input').value = '
1';