benchmark-query.js 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. var assert = require('assert');
  2. var createConnection = require('../../test/common').createConnection;
  3. var sql = process.argv[2];
  4. var starthr = process.hrtime();
  5. var haml = require('hamljs');
  6. var fs = require('fs');
  7. var render = haml.compile(fs.readFileSync('./views/index.haml'));
  8. l = 0;
  9. var rowsReceived = 0;
  10. var numRequests = 0;
  11. (function(cb) {
  12. var db = createConnection();
  13. var left = 1;
  14. var start = Date.now();
  15. var prev1000 = start;
  16. function bench()
  17. {
  18. //db.query(sql).on('end', function(err, res) {
  19. db.query(sql, function(err, res) {
  20. //db.execute(sql, function(err, res) {
  21. rowsReceived += res.length;
  22. numRequests++;
  23. l += render({results: res}).length;
  24. console.log(render({results: res}));
  25. left--;
  26. if (left % 1000 === 0)
  27. {
  28. var curTime = Date.now();
  29. var last1000time = curTime - prev1000;
  30. prev1000 = curTime;
  31. console.error( (1000000/last1000time) + ' req/sec' );
  32. }
  33. if (left > 0)
  34. bench();
  35. else {
  36. console.error( numRequests *1000/(Date.now() - start) + ' req/sec (average 10000 reqs)');
  37. console.error( rowsReceived*1000/(Date.now() - start) + ' row/sec (average 10000 reqs)');
  38. db.end();
  39. if (cb) cb();
  40. console.log(process.hrtime(starthr));
  41. console.log(l);
  42. }
  43. });
  44. }
  45. bench();
  46. })();