Browse Source

Merge branch 'ringojs-round5' of https://github.com/oberhamsi/FrameworkBenchmarks into oberhamsi-ringojs-round5

Patrick Falls 12 years ago
parent
commit
592ca98011
5 changed files with 32 additions and 6 deletions
  1. 4 3
      installer.py
  2. 2 2
      ringojs-convinient/setup.py
  3. 7 0
      ringojs/benchmark_config
  4. 17 0
      ringojs/ringo-main.js
  5. 2 1
      ringojs/setup.py

+ 4 - 3
installer.py

@@ -8,7 +8,7 @@ class Installer:
   ############################################################
   ############################################################
   def install_software(self):
   def install_software(self):
     if self.benchmarker.install == 'all' or self.benchmarker.install == 'server':
     if self.benchmarker.install == 'all' or self.benchmarker.install == 'server':
-        self.__install_server_software()    
+        self.__install_server_software()
 
 
     if self.benchmarker.install == 'all' or self.benchmarker.install == 'client':
     if self.benchmarker.install == 'all' or self.benchmarker.install == 'client':
         self.__install_client_software()
         self.__install_client_software()
@@ -24,7 +24,7 @@ class Installer:
     # Prerequisites
     # Prerequisites
     #######################################
     #######################################
     self.__run_command("sudo apt-get update", True)
     self.__run_command("sudo apt-get update", True)
-    self.__run_command("sudo apt-get upgrade", True)    
+    self.__run_command("sudo apt-get upgrade", True)
     self.__run_command("sudo apt-get install build-essential libpcre3 libpcre3-dev libpcrecpp0 libssl-dev zlib1g-dev python-software-properties unzip git-core libcurl4-openssl-dev libbz2-dev libmysqlclient-dev mongodb-clients libreadline6-dev libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt-dev libgdbm-dev ncurses-dev automake libffi-dev htop libtool bison libevent-dev libgstreamer-plugins-base0.10-0 libgstreamer0.10-0 liborc-0.4-0 libwxbase2.8-0 libwxgtk2.8-0 libgnutls-dev libjson0-dev libmcrypt-dev libicu-dev cmake gettext", True)
     self.__run_command("sudo apt-get install build-essential libpcre3 libpcre3-dev libpcrecpp0 libssl-dev zlib1g-dev python-software-properties unzip git-core libcurl4-openssl-dev libbz2-dev libmysqlclient-dev mongodb-clients libreadline6-dev libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt-dev libgdbm-dev ncurses-dev automake libffi-dev htop libtool bison libevent-dev libgstreamer-plugins-base0.10-0 libgstreamer0.10-0 liborc-0.4-0 libwxbase2.8-0 libwxgtk2.8-0 libgnutls-dev libjson0-dev libmcrypt-dev libicu-dev cmake gettext", True)
     self.__run_command("sudo add-apt-repository ppa:ubuntu-toolchain-r/test", True)
     self.__run_command("sudo add-apt-repository ppa:ubuntu-toolchain-r/test", True)
     self.__run_command("sudo apt-get update", True)
     self.__run_command("sudo apt-get update", True)
@@ -151,7 +151,8 @@ class Installer:
     self.__run_command("sudo ringo-admin install ringo/stick")
     self.__run_command("sudo ringo-admin install ringo/stick")
     self.__run_command("sudo ringo-admin install oberhamsi/reinhardt")
     self.__run_command("sudo ringo-admin install oberhamsi/reinhardt")
     self.__run_command("sudo ringo-admin install grob/ringo-sqlstore")
     self.__run_command("sudo ringo-admin install grob/ringo-sqlstore")
-    
+    self.__run_command("sudo ringo-admin install amigrave/ringo-mongodb")
+
     #
     #
     # Mono
     # Mono
     #
     #

+ 2 - 2
ringojs-convinient/setup.py

@@ -9,9 +9,9 @@ def start(args):
 
 
   try:
   try:
     subprocess.check_call("sudo mkdir -p /usr/share/ringojs/packages/ringo-sqlstore/jars/", shell=True)
     subprocess.check_call("sudo mkdir -p /usr/share/ringojs/packages/ringo-sqlstore/jars/", shell=True)
-    
+
     subprocess.check_call("sudo cp /usr/share/ringojs//packages/sql-ringojs-client/jars/mysql.jar /usr/share/ringojs/packages/ringo-sqlstore/jars/", shell=True)
     subprocess.check_call("sudo cp /usr/share/ringojs//packages/sql-ringojs-client/jars/mysql.jar /usr/share/ringojs/packages/ringo-sqlstore/jars/", shell=True)
-    subprocess.Popen("ringo --production ringo-main.js", shell=True, cwd="ringojs-convinient")
+    subprocess.Popen("ringo --production -Dserver -DXmx=512m -DXms=512m ringo-main.js", shell=True, cwd="ringojs-convinient")
     return 0
     return 0
   except subprocess.CalledProcessError:
   except subprocess.CalledProcessError:
     return 1
     return 1

+ 7 - 0
ringojs/benchmark_config

@@ -13,6 +13,13 @@
       "query_url": "/db?queries=",
       "query_url": "/db?queries=",
       "fortune_url": "/fortune",
       "fortune_url": "/fortune",
       "port": 8080,
       "port": 8080,
+      "sort": 73
+    },
+    "mongodb": {
+      "setup_file": "setup",
+      "db_url": "/mongodb",
+      "query_url": "/mongodb?queries=",
+      "port": 8080,
       "sort": 74
       "sort": 74
     }
     }
   }]
   }]

+ 17 - 0
ringojs/ringo-main.js

@@ -1,9 +1,11 @@
 var sql = require('sql-ringojs-client');
 var sql = require('sql-ringojs-client');
 var mustache = require('ringo/mustache');
 var mustache = require('ringo/mustache');
+var mongodb = require('ringo-mongodb');
 
 
 // DO NOT TOUCH THE FOLLOWING LINE.
 // DO NOT TOUCH THE FOLLOWING LINE.
 // THIS VARIABLE IS REGEX REPLACED BY setup.py
 // THIS VARIABLE IS REGEX REPLACED BY setup.py
 var dbHost = 'localhost';
 var dbHost = 'localhost';
+var mongodbUri = 'mongodb://localhost/hello_world';
 
 
 var sortFortunes = function(a, b) {
 var sortFortunes = function(a, b) {
  return (a.message < b.message) ? -1 : (a.message > b.message) ? 1 : 0;
  return (a.message < b.message) ? -1 : (a.message > b.message) ? 1 : 0;
@@ -78,6 +80,21 @@ exports.app = function(req) {
             connection.close();
             connection.close();
          }
          }
       }
       }
+   } else if (path === '/mongodb') {
+      var queryCount = req.env.servletRequest.getParameter('queries') | 1;
+      var col = mongodb.connect(mongodbUri).getCollection('world');
+      var body = [];
+      var randId, world;
+      for (var i = 0; i < queryCount; i++) {
+         randId = ((Math.random() * 10000) | 0) + 1;
+         world = col.findOne(randId);
+         body.push(world ? world.data : "Record not found for id#" + randId);
+      }
+      return {
+         status: 200,
+         headers: {"Content-Type": "application/json; charset=UTF-8"},
+         body: [mongodb.JSON.to(body)]
+      };
    }
    }
 };
 };
 
 

+ 2 - 1
ringojs/setup.py

@@ -6,9 +6,10 @@ import os
 
 
 def start(args):
 def start(args):
   setup_util.replace_text("ringojs/ringo-main.js", "dbHost = '.*';", "dbHost = '" + args.database_host + "';")
   setup_util.replace_text("ringojs/ringo-main.js", "dbHost = '.*';", "dbHost = '" + args.database_host + "';")
+  setup_util.replace_text("ringojs/ringo-main.js", "mongodb:\/\/.*\/hello_world", "mongodb://" + args.database_host + "/hello_world")
 
 
   try:
   try:
-    subprocess.Popen("ringo --production ringo-main.js", shell=True, cwd="ringojs")
+    subprocess.Popen("ringo --production -Dserver -DXmx=512m -DXms=512m ringo-main.js", shell=True, cwd="ringojs")
     return 0
     return 0
   except subprocess.CalledProcessError:
   except subprocess.CalledProcessError:
     return 1
     return 1