From: Robert Konigsberg Date: Mon, 17 Oct 2011 16:34:40 +0000 (-0400) Subject: Enhancement to dygraph-many-point*-benchmark.html X-Git-Tag: v1.0.0~414^2~2 X-Git-Url: https://adrianiainlam.tk/git/?a=commitdiff_plain;h=bbba718a601c4632528e03641caef72b0f908b5e;p=dygraphs.git Enhancement to dygraph-many-point*-benchmark.html --- diff --git a/dygraph-canvas.js b/dygraph-canvas.js index d4b088e..9a12459 100644 --- a/dygraph-canvas.js +++ b/dygraph-canvas.js @@ -155,6 +155,7 @@ DygraphCanvasRenderer.prototype.render = function() { if (this.attr_('drawYGrid')) { var ticks = this.layout.yticks; + // TODO(konigsberg): I don't think these calls to save() have a corresponding restore(). ctx.save(); ctx.strokeStyle = this.attr_('gridLineColor'); ctx.lineWidth = this.attr_('gridLineWidth'); diff --git a/tests/dygraph-many-points-benchmark.html b/tests/dygraph-many-points-benchmark.html index d1e2a58..37c7c2b 100644 --- a/tests/dygraph-many-points-benchmark.html +++ b/tests/dygraph-many-points-benchmark.html @@ -17,14 +17,16 @@

Plot which can be easily generated with different numbers of points for benchmarking/profiling and improving performance of dygraphs.

Data to plot: - sinusoid function - random points

+ sinusoid function + random points

Number of points: -

+

Number of series: -

+

Roll period (in points): -

+

Repetitions:

@@ -46,9 +48,9 @@ var plotDiv = document.getElementById('plot'); plotDiv.innerHTML = 'Redrawing...'; var numPoints = - parseInt(document.getElementById('num_points_input').value); + parseInt(document.getElementById('points').value); var numSeries = - parseInt(document.getElementById('num_series_input').value); + parseInt(document.getElementById('series').value); var repetitions = parseInt(document.getElementById('repetitions').value); @@ -77,7 +79,7 @@ labels.push("data-set-" + j); } var rollPeriod = parseInt( - document.getElementById('roll_period_input').value); + document.getElementById('rollPeriod').value); var opts = {labels: labels, rollPeriod: rollPeriod, timingName: "x"}; var millisecondss = []; for (var i = 0; i < repetitions; i++) { @@ -118,12 +120,49 @@ clickedRadioButton = function(radiobutton) { dataType = radiobutton.value; }; - - document.getElementById('num_points_input').value = '100'; - document.getElementById('num_series_input').value = '1'; - document.getElementById('roll_period_input').value = '1'; - document.getElementById('repetitions').value = '1'; + var values = { + points: 100, + series: 1, + rollPeriod: 1, + repetitions: 1, + type: 'sine' + }; + + // Parse the URL for parameters. Use it to override the values hash. + var href = window.location.href; + var qmindex = href.indexOf('?'); + if (qmindex > 0) { + var entries = href.substr(qmindex + 1).split('&'); + for (var idx = 0; idx < entries.length; idx++) { + var entry = entries[idx]; + var eindex = entry.indexOf('='); + if (eindex > 0) { + values[entry.substr(0, eindex)] = entry.substr(eindex + 1); + } + } + } + + var populate = function(name) { + document.getElementById(name).value = values[name]; + } + + var populateRadio = function(name) { + var val = values[name]; + var elem = document.getElementById(val); + elem.checked = true; + elem.onclick(); + } + + populate('points'); + populate('series'); + populate('rollPeriod'); + populate('repetitions'); + populateRadio('type'); + if (values["go"]) { + updatePlot(); + } +