Advertisement
Guest User

Untitled

a guest
Sep 24th, 2012
31
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) + 1;
  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.     var time = Math.floor(+new Date() / 1000) - 30;
  25.     db.query('UPDATE active_users SET active_time = FROM_UNIXTIME(' + time + ') WHERE user_id = ' + id, done);
  26. }
  27.  
  28. function do_usercount(cb) {
  29.     function done(err, rows, fields) {
  30.         if (err) {
  31.             throw err;
  32.         }
  33.         cb();
  34.     }
  35.     var time = Math.floor(+new Date() / 1000) - 30;
  36.     db.query('SELECT COUNT(*) AS cnt FROM active_users WHERE UNIX_TIMESTAMP(active_time) >= ' + time, done);
  37. }
  38.  
  39. function do_login(id, cb) {
  40.     function done(err, rows, fields) {
  41.         if (err) {
  42.             throw err;
  43.         }
  44.         cb();
  45.     }
  46.     var time = Math.floor(+new Date() / 1000);
  47.     db.query('UPDATE active_users SET active_time = FROM_UNIXTIME(' + time + ') WHERE user_id = ' + id, done);
  48. }
  49.  
  50. function run_benchmark() {
  51.     var start = new Date(), i = 400,
  52.         logout, login, done = 0;
  53.     function cb() {
  54.         done++;
  55.         if (done === 1200) {
  56.             console.log('Took ', (new Date()) - start, 'ms.');
  57.             db.end();
  58.         }
  59.     }
  60.     while (i--) {
  61.         logout = get_random_id();
  62.         login = get_random_id();
  63.         while (login !== logout) {
  64.             login = get_random_id();
  65.         }
  66.         do_logout(logout, cb);
  67.         do_login(login, cb);
  68.         do_usercount(cb);
  69.     }
  70. }
  71.  
  72. db.query('USE ragezone_test', run_benchmark);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement