bench-fake-server.js 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. var common = require('../test/common');
  2. var connection = common.createConnection();
  3. var assert = require('assert');
  4. // ==== simple pool ===
  5. var connections = new Array(10);
  6. for (var i=0; i < connections.length; ++i)
  7. connections[i] = common.createConnection();
  8. var currConn = 0;
  9. function next() {
  10. currConn++;
  11. if (currConn == connections.length)
  12. currConn = 0;
  13. connection = connections[currConn];
  14. }
  15. // ======================
  16. function benchmarkSelect(numLeft, callback) {
  17. //connection.query('query from fake server fixture', function(err, result) {
  18. // comment if no pool:
  19. next();
  20. var rows = 0;
  21. var q = connection.query('query from fake server fixture');
  22. q.on('result', function() { rows++; });
  23. q.on('end', function() {
  24. if (numLeft > 1)
  25. benchmarkSelect(numLeft-1, callback);
  26. else
  27. callback(rows);
  28. });
  29. }
  30. function benchmarkSelects(n, cb) {
  31. var numSelects = 100000;
  32. var start = process.hrtime();
  33. benchmarkSelect(numSelects, function(rowsPerQuery) {
  34. var end = process.hrtime();
  35. var diff = common.hrdiff(start, end);
  36. console.log(' rows: ' + numSelects*1e9/diff + ' results/sec, ' + rowsPerQuery*numSelects*1e9/diff + ' rows/sec');
  37. if (n > 1)
  38. benchmarkSelects(n - 1, cb);
  39. else
  40. cb();
  41. });
  42. }
  43. module.exports = function(done) {
  44. var testStart = process.hrtime();
  45. benchmarkSelects(5, function() {
  46. var testEnd = process.hrtime();
  47. console.log('total time: ', common.hrdiff(testStart, testEnd)/1e9 );
  48. connection.end();
  49. if (done)
  50. done();
  51. });
  52. };
  53. module.exports();