X-Git-Url: https://adrianiainlam.tk/git/?a=blobdiff_plain;f=phantom-perf.js;fp=phantom-perf.js;h=0000000000000000000000000000000000000000;hb=3123ca57f71d145bb5bcc4a2f754d3dff3225346;hp=b98c3f03a91aa60532c5574516408b48e8f2d6bf;hpb=26ee953643ccd2d32e38e6b60b20e6a01c1dc9ba;p=dygraphs.git diff --git a/phantom-perf.js b/phantom-perf.js deleted file mode 100644 index b98c3f0..0000000 --- a/phantom-perf.js +++ /dev/null @@ -1,94 +0,0 @@ -// dygraphs command-line performance benchmark. -// -// Invoke as: -// -// phantomjs phantom-perf.js 1000 100 5 -// -// If the test succeeds, it will print out something like: -// -// 1000/100/5: 1309.4+/-43.4 ms (1284, 1245, 1336, 1346, 1336) -// -// This is mean +/- standard deviation, followed by a list of the individual -// times for each repetition, in milliseconds. - -var system = require('system'), - fs = require('fs'); - -var tmpfile = "tmp-dygraph-test-params.js"; -var url = 'tests/dygraph-many-points-benchmark.html'; - -function fail(msg){ - console.warn(msg); - phantom.exit(1); -} - -function assert(condition, msg){ - if (condition) return; - fail(msg); -} - -var config_file_template = - "document.getElementById('points').value = (points);\n" + - "document.getElementById('series').value = (series);\n" + - "document.getElementById('repetitions').value = (repetitions);\n"; - -var RunBenchmark = function(points, series, repetitions, done_callback) { - var page = require('webpage').create(); - - // page.evalute() is seriously locked down. - // This was the only way I could find to pass the parameters to the page. - fs.write(tmpfile, - config_file_template - .replace("(points)", points) - .replace("(series)", series) - .replace("(repetitions)", repetitions), - "w"); - - page.open(url, function(status) { - if (status !== 'success') { - console.warn('Page status: ' + status); - console.log(page); - phantom.exit(); - } - - assert(page.injectJs(tmpfile), "Unable to inject JS."); - fs.remove(tmpfile); - - var start = new Date().getTime(); - var rep_times = page.evaluate(function() { - var rep_times = updatePlot(); - return rep_times; - }); - var end = new Date().getTime(); - var elapsed = (end - start) / 1000; - done_callback(rep_times); - }); -}; - - -var points, series, repetitions; -if (4 != system.args.length) { - console.warn('Usage: phantomjs phantom-driver.js (points) (series) (repititions)'); - phantom.exit(); -} - -points = parseInt(system.args[1]); -series = parseInt(system.args[2]); -repetitions = parseInt(system.args[3]); -assert(points != null, "Couldn't parse " + system.args[1]); -assert(series != null, "Couldn't parse " + system.args[2]); -assert(repetitions != null, "Couldn't parse " + system.args[3]); - - -RunBenchmark(points, series, repetitions, function(rep_times) { - var mean = 0.0, std = 0.0; - rep_times.forEach(function(x) { mean += x; } ); - mean /= rep_times.length; - rep_times.forEach(function(x) { std += Math.pow(x - mean, 2); }); - std = Math.sqrt(std / (rep_times.length - 1)); - - console.log(points + '/' + series + '/' + repetitions + ': ' + - mean.toFixed(1) + '+/-' + std.toFixed(1) + ' ms (' + - rep_times.join(', ') + ')'); - phantom.exit(); -});