Advertisement
Guest User

Untitled

a guest
Sep 24th, 2012
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /*jslint node: true, plusplus: true*/
  2. 'use strict';
  3. var mysql = require('mysql'),
  4.     db = mysql.createConnection({
  5.         host: 'localhost',
  6.         user: 'root',
  7.         password: 'root'
  8.     }),
  9.     RAND_MAX = 9999;
  10.  
  11. db.connect();
  12.  
  13. function get_random_id() {
  14.     return Math.floor(Math.random() * RAND_MAX);
  15. }
  16.  
  17. function do_logout(id, cb) {
  18.     function done(err, rows, fields) {
  19.         if (err) {
  20.             throw err;
  21.         }
  22.         cb();
  23.     }
  24.     db.query('UPDATE users SET active = 0 WHERE id = ' + id, done);
  25. }
  26.  
  27. function do_usercount(cb) {
  28.     function done(err, rows, fields) {
  29.         if (err) {
  30.             throw err;
  31.         }
  32.         cb();
  33.     }
  34.     db.query('SELECT COUNT(*) AS cnt FROM users WHERE active = 1', done);
  35. }
  36.  
  37. function do_login(id, cb) {
  38.     function done(err, rows, fields) {
  39.         if (err) {
  40.             throw err;
  41.         }
  42.         cb();
  43.     }
  44.     db.query('UPDATE users SET active = 1 WHERE id = ' + id, done);
  45. }
  46.  
  47. function run_benchmark() {
  48.     var start = new Date(), i = 400,
  49.         logout, login, done = 0;
  50.     function cb() {
  51.         done++;
  52.         if (done === 1200) {
  53.             console.log('Took ', (new Date()) - start, 'ms.');
  54.             db.end();
  55.         }
  56.     }
  57.     while (i--) {
  58.         logout = get_random_id();
  59.         login = get_random_id();
  60.         while (login !== logout) {
  61.             login = get_random_id();
  62.         }
  63.         do_logout(logout, cb);
  64.         do_login(login, cb);
  65.         do_usercount(cb);
  66.     }
  67. }
  68.  
  69. db.query('USE ragezone_test', run_benchmark);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement