Browse Source

Merge branch 'master' of https://github.com/lucassp/FrameworkBenchmarks into lucassp-master

Conflicts:
	dart/server.dart
Mike Smith 11 years ago
parent
commit
f5f93d281f

+ 8 - 8
dart-start/README.md

@@ -4,14 +4,14 @@ This test adds [Start](https://github.com/lvivski/start), a Sinatra inspired web
 
 ## Versions
 
-* [Dart SDK version 0.8.1.2_r28355](https://launchpad.net/~hachre/+archive/dart)
-* [Dart args version 0.8.1](http://pub.dartlang.org/packages/args)
-* [Dart crypto version 0.8.1](http://pub.dartlang.org/packages/crypto)
-* [Dart mustache version 0.1.5](http://pub.dartlang.org/packages/mustache)
-* [Dart mongo_dart version 0.1.30](http://pub.dartlang.org/packages/mongo_dart)
-* [Dart postgresql version 0.2.8](http://pub.dartlang.org/packages/postgresql)
-* [Dart start version 0.0.9+1](http://pub.dartlang.org/packages/start)
-* [Dart yaml version 0.8.1](http://pub.dartlang.org/packages/yaml)
+* [Dart SDK version 1.0.0.7_r30338](https://launchpad.net/~hachre/+archive/dart)
+* [Dart args version 0.9.0](http://pub.dartlang.org/packages/args)
+* [Dart crypto version 0.9.0](http://pub.dartlang.org/packages/crypto)
+* [Dart mustache version 0.1.6](http://pub.dartlang.org/packages/mustache)
+* [Dart mongo_dart version 0.1.35](http://pub.dartlang.org/packages/mongo_dart)
+* [Dart postgresql version 0.2.12](http://pub.dartlang.org/packages/postgresql)
+* [Dart start version 0.1.1](http://pub.dartlang.org/packages/start)
+* [Dart yaml version 0.9.0](http://pub.dartlang.org/packages/yaml)
 
 ## Test URLs
 

+ 9 - 8
dart-start/pubspec.yaml

@@ -1,11 +1,12 @@
 name: DartStartBenchmark
 description: A benchmark of Dart Start, a Sinatra inspired web framework
+environment:
+  sdk: ">=0.8.10+6 <2.0.0"
 dependencies:
-  args: 0.8.1
-  crypto: 0.8.1
-  mongo_dart: 0.1.30
-  mustache: 0.1.5
-  postgresql: 0.2.8
-  start: 0.0.9+1
-  yaml: 0.8.1
-
+  args: 0.9.0
+  crypto: 0.9.0
+  mongo_dart: 0.1.35
+  mustache: 0.1.6
+  postgresql: 0.2.12
+  start: 0.1.1
+  yaml: 0.9.0

+ 24 - 24
dart-start/server.dart

@@ -1,7 +1,7 @@
 import "dart:core";
 import "dart:io";
 import 'dart:async' show Future;
-import 'dart:json' as json;
+import 'dart:convert';
 import 'dart:math' show Random;
 import "package:start/start.dart";
 import "package:args/args.dart";
@@ -53,13 +53,13 @@ class World {
   toJson() => { "id": id, "randomnumber": randomnumber };
 }
 
-main() {
+main(List<String> args) {
   var parser = new ArgParser();
   parser.addOption('address', abbr: 'a', defaultsTo: '0.0.0.0');
   parser.addOption('port', abbr: 'p', defaultsTo: '8080');
   parser.addOption('dbconnections', abbr: 'd', defaultsTo: '256');
   
-  var arguments = parser.parse(new Options().arguments);
+  var arguments = parser.parse(args);
   
   Future.wait([
     new File("postgresql.yaml").readAsString().then((config){
@@ -93,7 +93,7 @@ main() {
           };
           
           _setJsonHeaders(request.response);
-          request.response.send(json.stringify(helloWorld));
+          request.response.send(JSON.encode(helloWorld));
         });
         
         
@@ -103,7 +103,7 @@ main() {
           _setJsonHeaders(request.response);
           
           _query().then((data) {
-            request.response.send(json.stringify(data));
+            request.response.send(JSON.encode(data));
           });
         });
         
@@ -121,7 +121,7 @@ main() {
                   growable: false
                 )
             )
-            .then((response) => request.response.send(json.stringify(response)));
+            .then((response) => request.response.send(JSON.encode(response)));
         });
         
         // Fortunes test
@@ -129,7 +129,7 @@ main() {
           _setHtmlHeaders(request.response);
           
           _connectionPool.connect().then((connection) {
-            return connection.query('SELECT "id", "message" FROM "Fortune";')
+            return connection.query('SELECT id, message FROM fortune;')
                 .map((row) => new Fortune(row[0], row[1]))
                 .toList()
                 .whenComplete(() { connection.close(); });
@@ -159,7 +159,7 @@ main() {
                   return _connectionPool.connect()
                       .then((connection) {
                         return connection.execute(
-                              'UPDATE "World" SET "randomnumber" = @randomnumber WHERE "id" = @id;',
+                              'UPDATE world SET randomnumber = @randomnumber WHERE id = @id;',
                               { 
                                 'randomnumber': world.randomnumber,
                                 'id': world.id 
@@ -170,7 +170,7 @@ main() {
                       .then((_) => world);
                 });
           }, growable: false))
-          .then((worlds) => request.response.send(json.stringify(worlds)));
+          .then((worlds) => request.response.send(JSON.encode(worlds)));
         });
         
         // Plain text test
@@ -186,8 +186,8 @@ main() {
             .then((_) {
               var collectionData = new List.generate(_WORLD_TABLE_SIZE, (index) {
                 return {
-                  "id": index + 1,
-                  "randomnumber": _RANDOM.nextInt(_WORLD_TABLE_SIZE)
+                  "_id": index + 1,
+                  "randomNumber": _RANDOM.nextInt(_WORLD_TABLE_SIZE)
                 };
               });
               return _worldCollection.insertAll(collectionData); 
@@ -205,7 +205,7 @@ main() {
                 var hash = new MD5();
                 hash.add(_RANDOM.nextInt(_FORTUNE_TABLE_SIZE).toString().codeUnits);
                 return {
-                  "id": index + 1,
+                  "_id": index + 1,
                   "message": CryptoUtils.bytesToHex(hash.close())
                 };
               });
@@ -224,8 +224,8 @@ main() {
 
           _mongoQuery().then((data) {
             request.response.json({
-              "id": data["id"],
-              "randomnumber": data["randomnumber"]
+              "id": data["_id"],
+              "randomnumber": data["randomNumber"]
             });
           });
         });
@@ -247,11 +247,11 @@ main() {
             .then((response) {
               var results = response.map((world) {
                 return {
-                  "id": world["id"],
-                  "randomnumber": world["randomnumber"]
+                  "id": world["_id"],
+                  "randomnumber": world["randomNumber"]
                 };
               });
-              request.response.send(json.stringify(results.toList()));
+              request.response.send(JSON.encode(results.toList()));
             });
         });
         
@@ -264,7 +264,7 @@ main() {
           Future.wait(new List.generate(queries, (index) {
             return _mongoQuery()
                 .then((world) {
-                  world["randomnumber"] = _RANDOM.nextInt(_WORLD_TABLE_SIZE);
+                  world["randomNumber"] = _RANDOM.nextInt(_WORLD_TABLE_SIZE);
                   return _worldCollection.update( { "_id": world["_id"] }, world)
                       .then((_) => world);
                 });
@@ -272,11 +272,11 @@ main() {
           .then((worlds) {
             var result = worlds.map((world) {
               return {
-                "id": world["id"],
-                "randomnumber": world["randomnumber"]
+                "id": world["_id"],
+                "randomNumber": world["randomNumber"]
               };
             });
-            request.response.send(json.stringify(result.toList()));
+            request.response.send(JSON.encode(result.toList()));
           });
         });
         
@@ -288,7 +288,7 @@ main() {
           
           _fortuneCollection.find().toList().then((fortunes) {
             fortunes = fortunes.map((fortune) {
-              return new Fortune(fortune["id"], fortune["message"]);
+              return new Fortune(fortune["_id"], fortune["message"]);
             }).toList();
             fortunes.add(new Fortune(0, 'Additional fortune added at request time.'));
             fortunes.sort();
@@ -342,7 +342,7 @@ _parseQueriesParam(param) {
 _query() {
   return _connectionPool.connect().then((connection) {
     return connection
-      .query('SELECT "id", "randomnumber" FROM "World" WHERE id = @id;', { 'id': _RANDOM.nextInt(_WORLD_TABLE_SIZE) + 1 })
+      .query('SELECT id, randomnumber FROM world WHERE id = @id;', { 'id': _RANDOM.nextInt(_WORLD_TABLE_SIZE) + 1 })
       .single
       .then((row) =>new World(row[0], row[1]))
       .whenComplete(() {
@@ -354,6 +354,6 @@ _query() {
 // runs a mongo query and returns a promise
 _mongoQuery() {
   return _worldCollection.findOne({
-    "id": _RANDOM.nextInt(_WORLD_TABLE_SIZE) + 1
+    "_id": _RANDOM.nextInt(_WORLD_TABLE_SIZE) + 1
   });
 }

+ 1 - 1
dart-start/setup.py

@@ -10,7 +10,7 @@ def start(args, logfile, errfile):
     #
     # install dart dependencies
     #
-    subprocess.check_call('pub install', shell=True, cwd='dart-start', stderr=errfile, stdout=logfile)
+    subprocess.check_call('pub upgrade', shell=True, cwd='dart-start', stderr=errfile, stdout=logfile)
     #
     # start dart servers
     #

+ 7 - 7
dart-stream/README.md

@@ -4,13 +4,13 @@ This test adds [Stream](https://github.com/rikulo/stream), a lightweight Dart we
 
 ## Versions
 
-* [Dart SDK version 0.8.1.2_r28355](https://launchpad.net/~hachre/+archive/dart)
-* [Dart args version 0.8.1](http://pub.dartlang.org/packages/args)
-* [Dart crypto version 0.8.1](http://pub.dartlang.org/packages/crypto)
-* [Dart mongo_dart version 0.1.30](http://pub.dartlang.org/packages/mongo_dart)
-* [Dart postgresql version 0.2.8](http://pub.dartlang.org/packages/postgresql)
-* [Dart stream version 0.8.4](http://pub.dartlang.org/packages/start)
-* [Dart yaml version 0.8.1](http://pub.dartlang.org/packages/yaml)
+* [Dart SDK version 1.0.0.3_r30188](https://launchpad.net/~hachre/+archive/dart)
+* [Dart args version 0.9.0](http://pub.dartlang.org/packages/args)
+* [Dart crypto version 0.9.0](http://pub.dartlang.org/packages/crypto)
+* [Dart mongo_dart version 0.1.35](http://pub.dartlang.org/packages/mongo_dart)
+* [Dart postgresql version 0.2.12](http://pub.dartlang.org/packages/postgresql)
+* [Dart stream version 1.0.0](http://pub.dartlang.org/packages/start)
+* [Dart yaml version 0.9.0](http://pub.dartlang.org/packages/yaml)
 
 ## Test URLs
 

+ 9 - 6
dart-stream/pubspec.yaml

@@ -1,9 +1,12 @@
 name: DartStreamBenchmark
 description: A benchmark for Stream, a lightweight Dart web server
+environment:
+  sdk: '>=0.8.7'
 dependencies:
-  args: 0.8.1
-  crypto: 0.8.1
-  mongo_dart: 0.1.30
-  postgresql: 0.2.8
-  stream: 0.8.4
-  yaml: 0.8.1
+  args: 0.9.0
+  crypto: 0.9.0
+  mongo_dart: 0.1.35
+  postgresql: 0.2.12
+  rikulo_commons: 1.0.0
+  stream: 1.0.0
+  yaml: 0.9.0

+ 16 - 14
dart-stream/server.dart

@@ -3,7 +3,7 @@ library stream_benchmark;
 import "dart:core";
 import "dart:io";
 import 'dart:async' show Future;
-import 'dart:json' as json;
+import 'dart:convert';
 import 'dart:math' show Random;
 import "package:stream/stream.dart";
 import "package:args/args.dart";
@@ -84,13 +84,15 @@ class World {
   toJson() => { "id": id, "randomNumber": randomnumber };
 }
 
-main() {
+main(List<String> args) {
+  
   var parser = new ArgParser();
   parser.addOption('address', abbr: 'a', defaultsTo: '0.0.0.0');
   parser.addOption('port', abbr: 'p', defaultsTo: '8080');
   parser.addOption('dbconnections', abbr: 'd', defaultsTo: '256');
   
-  var arguments = parser.parse(new Options().arguments);
+  var arguments = parser.parse(args);
+  
   Future.wait([
      new File("postgresql.yaml").readAsString().then((config){
        _connectionPool = new pgpool.Pool(
@@ -118,13 +120,13 @@ _jsonTest(HttpConnect connect) {
       "message": "Hello, World!"
   };
   
-  connect.response.write(json.stringify(helloWorld));
+  connect.response.write(JSON.encode(helloWorld));
 }
 
 _dbTest(HttpConnect connect) {
   
   return _query().then((data) {
-    connect.response.write(json.stringify(data));
+    connect.response.write(JSON.encode(data));
   });
 }
 
@@ -138,7 +140,7 @@ _queriesTest(HttpConnect connect) {
             growable: false
         )
     )
-    .then((response) => connect.response.write(json.stringify(response)));
+    .then((response) => connect.response.write(JSON.encode(response)));
 }
 
 _updatesTest(HttpConnect connect) {
@@ -151,7 +153,7 @@ _updatesTest(HttpConnect connect) {
             return _connectionPool.connect()
               .then((connection) {
                 return connection.execute(
-                      'UPDATE "World" SET "randomnumber" = @randomnumber WHERE "id" = @id;',
+                      'UPDATE world SET randomnumber = @randomnumber WHERE id = @id;',
                       { 
                         'randomnumber': world.randomnumber,
                         'id': world.id 
@@ -162,13 +164,13 @@ _updatesTest(HttpConnect connect) {
                 .then((_) => world);
           });
     }, growable: false))
-    .then((worlds) => connect.response.write(json.stringify(worlds)));
+    .then((worlds) => connect.response.write(JSON.encode(worlds)));
 }
 
 _fortunesTest(HttpConnect connect) {
   
   return _connectionPool.connect().then((connection) {
-    return connection.query('SELECT "id", "message" FROM "Fortune";')
+    return connection.query('SELECT id, message FROM fortune;')
         .map((row) => new Fortune(row[0], row[1]))
           .toList()
             .whenComplete(() { connection.close(); });
@@ -187,7 +189,7 @@ _plaintextTest(HttpConnect connect) {
 _dbMongoTest(HttpConnect connect) {
   
   return _mongoQuery().then((data) {
-    connect.response.write(json.stringify({
+    connect.response.write(JSON.encode({
       "id": data["_id"],
       "randomNumber": data["randomNumber"]
     }));
@@ -211,7 +213,7 @@ _queriesMongoTest(HttpConnect connect) {
           "randomNumber": world["randomNumber"]
         };
       });
-      connect.response.write(json.stringify(results.toList()));
+      connect.response.write(JSON.encode(results.toList()));
     });
 }
 
@@ -233,7 +235,7 @@ _updatesMongoTest(HttpConnect connect) {
           "randomNumber": world["randomNumber"]
         };
       });
-      connect.response.write(json.stringify(result.toList()));
+      connect.response.write(JSON.encode(result.toList()));
     });
 }
 
@@ -282,14 +284,14 @@ _htmlHeadersFilter(HttpConnect connect, Future chain(HttpConnect conn)) {
 
 // parse queries param
 _parseQueriesParam(param) {
-  return param.isEmpty ? 1 : int.parse(param, radix: 10, onError: (_) => 1).clamp(1, 500);
+  return (param == null || param.isEmpty) ? 1 : int.parse(param, radix: 10, onError: (_) => 1).clamp(1, 500);
 }
 
 // runs a query and returns a promise
 _query() {
   return _connectionPool.connect().then((connection) {
     return connection
-      .query('SELECT "id", "randomnumber" FROM "World" WHERE id = @id;', { 'id': _RANDOM.nextInt(_WORLD_TABLE_SIZE) + 1 })
+      .query('SELECT id, randomnumber FROM world WHERE id = @id;', { 'id': _RANDOM.nextInt(_WORLD_TABLE_SIZE) + 1 })
       .single
       .then((row) =>new World(row[0], row[1]))
       .whenComplete(() {

+ 1 - 1
dart-stream/setup.py

@@ -10,7 +10,7 @@ def start(args, logfile, errfile):
     #
     # install dart dependencies
     #
-    subprocess.check_call('pub install', shell=True, cwd='dart-stream', stderr=errfile, stdout=logfile)
+    subprocess.check_call('pub upgrade', shell=True, cwd='dart-stream', stderr=errfile, stdout=logfile)
     #
     # start dart servers
     #

+ 6 - 6
dart/README.md

@@ -4,12 +4,12 @@ This is the dart portion of a [benchmarking test suite](../) comparing a variety
 
 ## Versions
 
-* [Dart SDK version 0.5.13.1_r23552](http://www.dartlang.org/)
-* [Dart args version 0.5.9](http://pub.dartlang.org/packages/args)
-* [Dart crypto version 0.5.13](http://pub.dartlang.org/packages/crypto)
-* [Dart mustache version 0.1.5](http://pub.dartlang.org/packages/mustache)
-* [Dart postgresql version 0.2.7](http://pub.dartlang.org/packages/postgresql)
-* [Dart yaml version 0.5.7](http://pub.dartlang.org/packages/yaml)
+* [Dart SDK version 1.0.0.7_r30338](http://www.dartlang.org/)
+* [Dart args version 0.9.0](http://pub.dartlang.org/packages/args)
+* [Dart crypto version 0.9.0](http://pub.dartlang.org/packages/crypto)
+* [Dart mustache version 0.1.6](http://pub.dartlang.org/packages/mustache)
+* [Dart postgresql version 0.2.12](http://pub.dartlang.org/packages/postgresql)
+* [Dart yaml version 0.9.0](http://pub.dartlang.org/packages/yaml)
 
 ## Test URLs
 

+ 2 - 0
dart/pubspec.yaml

@@ -1,5 +1,7 @@
 name: dartbenchmark
 description: A benchmark of dart
+environment:
+  sdk: '>=0.8.10+6 <2.0.0'
 dependencies:
   args: 0.9.0
   crypto: 0.9.0

+ 1 - 1
dart/server.dart

@@ -12,7 +12,7 @@ import 'package:yaml/yaml.dart' as yaml;
 /// address and port for incoming connections is configurable via command line
 /// arguments, as is the number of database connections to be maintained in the
 /// connection pool.
-main(args) {
+main(List<String> args) {
   var parser = new ArgParser();
   parser.addOption('address', abbr: 'a', defaultsTo: '0.0.0.0');
   parser.addOption('port', abbr: 'p', defaultsTo: '8080');

+ 1 - 1
dart/setup.py

@@ -9,7 +9,7 @@ def start(args, logfile, errfile):
     #
     # install dart dependencies
     #
-    subprocess.check_call('pub install', shell=True, cwd='dart', stderr=errfile, stdout=logfile)
+    subprocess.check_call('pub upgrade', shell=True, cwd='dart', stderr=errfile, stdout=logfile)
     #
     # start dart servers
     #