node-query/node_modules/mysql2/benchmarks/bench-fake-server.js

61 lines
1.5 KiB
JavaScript

var common = require('../test/common');
var connection = common.createConnection();
var assert = require('assert');
// ==== simple pool ===
var connections = new Array(10);
for (var i=0; i < connections.length; ++i)
connections[i] = common.createConnection();
var currConn = 0;
function next() {
currConn++;
if (currConn == connections.length)
currConn = 0;
connection = connections[currConn];
}
// ======================
function benchmarkSelect(numLeft, callback) {
//connection.query('query from fake server fixture', function(err, result) {
// comment if no pool:
next();
var rows = 0;
var q = connection.query('query from fake server fixture');
q.on('result', function() { rows++; });
q.on('end', function() {
if (numLeft > 1)
benchmarkSelect(numLeft-1, callback);
else
callback(rows);
});
}
function benchmarkSelects(n, cb) {
var numSelects = 100000;
var start = process.hrtime();
benchmarkSelect(numSelects, function(rowsPerQuery) {
var end = process.hrtime();
var diff = common.hrdiff(start, end);
console.log(' rows: ' + numSelects*1e9/diff + ' results/sec, ' + rowsPerQuery*numSelects*1e9/diff + ' rows/sec');
if (n > 1)
benchmarkSelects(n - 1, cb);
else
cb();
});
}
module.exports = function(done) {
var testStart = process.hrtime();
benchmarkSelects(5, function() {
var testEnd = process.hrtime();
console.log('total time: ', common.hrdiff(testStart, testEnd)/1e9 );
connection.end();
if (done)
done();
});
};
module.exports();