| Index: appengine/config_service/ui/bower_components/async/perf/suites.js
|
| diff --git a/appengine/config_service/ui/bower_components/async/perf/suites.js b/appengine/config_service/ui/bower_components/async/perf/suites.js
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..dd8392c382073c4eebf5c6ef99abc06f92a795cb
|
| --- /dev/null
|
| +++ b/appengine/config_service/ui/bower_components/async/perf/suites.js
|
| @@ -0,0 +1,297 @@
|
| +var _ = require("lodash");
|
| +var tasks;
|
| +
|
| +module.exports = [
|
| + {
|
| + name: "each",
|
| + // args lists are passed to the setup function
|
| + args: [[10], [300], [10000]],
|
| + setup: function(count) {
|
| + tasks = _.range(count);
|
| + },
|
| + fn: function (async, done) {
|
| + async.each(tasks, function (num, cb) {
|
| + async.setImmediate(cb);
|
| + }, done);
|
| + }
|
| + },
|
| + {
|
| + name: "eachSeries",
|
| + args: [[10], [300], [10000]],
|
| + setup: function(count) {
|
| + tasks = _.range(count);
|
| + },
|
| + fn: function (async, done) {
|
| + async.eachSeries(tasks, function (num, cb) {
|
| + async.setImmediate(cb);
|
| + }, done);
|
| + }
|
| + },
|
| + {
|
| + name: "eachLimit",
|
| + args: [[10], [300], [10000]],
|
| + setup: function(count) {
|
| + tasks = _.range(count);
|
| + },
|
| + fn: function (async, done) {
|
| + async.eachLimit(tasks, 4, function (num, cb) {
|
| + async.setImmediate(cb);
|
| + }, done);
|
| + }
|
| + },
|
| + {
|
| + name: "map",
|
| + // args lists are passed to the setup function
|
| + args: [[10], [300], [10000]],
|
| + setup: function(count) {
|
| + tasks = _.range(count);
|
| + },
|
| + fn: function (async, done) {
|
| + async.map(tasks, function (num, cb) {
|
| + async.setImmediate(cb);
|
| + }, done);
|
| + }
|
| + },
|
| + {
|
| + name: "mapSeries",
|
| + args: [[10], [300], [10000]],
|
| + setup: function(count) {
|
| + tasks = _.range(count);
|
| + },
|
| + fn: function (async, done) {
|
| + async.mapSeries(tasks, function (num, cb) {
|
| + async.setImmediate(cb);
|
| + }, done);
|
| + }
|
| + },
|
| + {
|
| + name: "mapLimit",
|
| + args: [[10], [300], [10000]],
|
| + setup: function(count) {
|
| + tasks = _.range(count);
|
| + },
|
| + fn: function (async, done) {
|
| + async.mapLimit(tasks, 4, function (num, cb) {
|
| + async.setImmediate(cb);
|
| + }, done);
|
| + }
|
| + },
|
| + {
|
| + name: "eachOf",
|
| + // args lists are passed to the setup function
|
| + args: [[10], [300], [10000]],
|
| + setup: function(count) {
|
| + tasks = _.range(count);
|
| + },
|
| + fn: function (async, done) {
|
| + async.eachOf(tasks, function (num, i, cb) {
|
| + async.setImmediate(cb);
|
| + }, done);
|
| + }
|
| + },
|
| + {
|
| + name: "eachOfSeries",
|
| + args: [[10], [300], [10000]],
|
| + setup: function(count) {
|
| + tasks = _.range(count);
|
| + },
|
| + fn: function (async, done) {
|
| + async.eachOfSeries(tasks, function (num, i, cb) {
|
| + async.setImmediate(cb);
|
| + }, done);
|
| + }
|
| + },
|
| + {
|
| + name: "eachOfLimit",
|
| + args: [[10], [300], [10000]],
|
| + setup: function(count) {
|
| + tasks = _.range(count);
|
| + },
|
| + fn: function (async, done) {
|
| + async.eachOfLimit(tasks, 4, function (num, i, cb) {
|
| + async.setImmediate(cb);
|
| + }, done);
|
| + }
|
| + },
|
| + {
|
| + name: "parallel",
|
| + args: [[10], [100], [1000]],
|
| + setup: function (count) {
|
| + tasks = _.range(count).map(function () {
|
| + return function (cb) {
|
| + setImmediate(cb);
|
| + };
|
| + });
|
| + },
|
| + fn: function (async, done) {
|
| + async.parallel(tasks, done);
|
| + }
|
| + },
|
| + {
|
| + name: "series",
|
| + args: [[10], [100], [1000]],
|
| + setup: function (count) {
|
| + tasks = _.range(count).map(function () {
|
| + return function (cb) { setImmediate(cb); };
|
| + });
|
| + },
|
| + fn: function (async, done) {
|
| + async.series(tasks, done);
|
| + }
|
| + },
|
| + {
|
| + name: "waterfall",
|
| + args: [[10], [100], [1000]],
|
| + setup: function (count) {
|
| + tasks = [
|
| + function (cb) {
|
| + return cb(null, 1);
|
| + }
|
| + ].concat(_.range(count).map(function (i) {
|
| + return function (arg, cb) {
|
| + setImmediate(function () {
|
| + cb(null, i);
|
| + });
|
| + };
|
| + }));
|
| + },
|
| + fn: function (async, done) {
|
| + async.waterfall(tasks, done);
|
| + }
|
| + },
|
| + {
|
| + name: "queue",
|
| + args: [[1000], [30000], [100000], [200000]],
|
| + setup: function (count) {
|
| + tasks = count;
|
| + },
|
| + fn: function (async, done) {
|
| + var numEntries = tasks;
|
| + var q = async.queue(worker, 1);
|
| + for (var i = 1; i <= numEntries; i++) {
|
| + q.push({num: i});
|
| + }
|
| + function worker(task, callback) {
|
| + if (task.num === numEntries) {
|
| + return done();
|
| + }
|
| + setImmediate(callback);
|
| + }
|
| + }
|
| + },
|
| + {
|
| + name: "some - no short circuit- false",
|
| + // args lists are passed to the setup function
|
| + args: [[500]],
|
| + setup: function(count) {
|
| + tasks = _.range(count);
|
| + },
|
| + fn: function (async, done) {
|
| + async.some(tasks, function(i, cb) {
|
| + async.setImmediate(function() {
|
| + cb(i >= 600);
|
| + });
|
| + }, done);
|
| + }
|
| + },
|
| + {
|
| + name: "some - short circuit - true",
|
| + // args lists are passed to the setup function
|
| + args: [[500]],
|
| + setup: function(count) {
|
| + tasks = _.range(count);
|
| + },
|
| + fn: function (async, done) {
|
| + async.some(tasks, function(i, cb) {
|
| + async.setImmediate(function() {
|
| + cb(i >= 60);
|
| + });
|
| + }, done);
|
| + }
|
| + },
|
| + {
|
| + name: "every - no short circuit- true",
|
| + // args lists are passed to the setup function
|
| + args: [[500]],
|
| + setup: function(count) {
|
| + tasks = _.range(count);
|
| + },
|
| + fn: function (async, done) {
|
| + async.every(tasks, function(i, cb) {
|
| + async.setImmediate(function() {
|
| + cb(i <= 600);
|
| + });
|
| + }, done);
|
| + }
|
| + },
|
| + {
|
| + name: "every - short circuit - false",
|
| + // args lists are passed to the setup function
|
| + args: [[500]],
|
| + setup: function(count) {
|
| + tasks = _.range(count);
|
| + },
|
| + fn: function (async, done) {
|
| + async.every(tasks, function(i, cb) {
|
| + async.setImmediate(function() {
|
| + cb(i <= 60);
|
| + });
|
| + }, done);
|
| + }
|
| + },
|
| + {
|
| + name: "defer nextTick",
|
| + fn: function (async, done) {
|
| + process.nextTick(done);
|
| + }
|
| + },
|
| + {
|
| + name: "defer setImmediate",
|
| + fn: function (async, done) {
|
| + setImmediate(done);
|
| + }
|
| + },
|
| + {
|
| + name: "defer async.nextTick",
|
| + fn: function (async, done) {
|
| + async.nextTick(done);
|
| + }
|
| + },
|
| + {
|
| + name: "defer async.setImmediate",
|
| + fn: function (async, done) {
|
| + async.setImmediate(done);
|
| + }
|
| + },
|
| + {
|
| + name: "defer setTimeout",
|
| + fn: function (async, done) {
|
| + setTimeout(done, 0);
|
| + }
|
| + },
|
| + {
|
| + name: "ensureAsync sync",
|
| + fn: function (async, done) {
|
| + async.ensureAsync(function (cb) {
|
| + cb();
|
| + })(done);
|
| + }
|
| + },
|
| + {
|
| + name: "ensureAsync async",
|
| + fn: function (async, done) {
|
| + async.ensureAsync(function (cb) {
|
| + setImmediate(cb);
|
| + })(done);
|
| + }
|
| + },
|
| + {
|
| + name: "ensureAsync async noWrap",
|
| + fn: function (async, done) {
|
| + (function (cb) {
|
| + setImmediate(cb);
|
| + }(done));
|
| + }
|
| + }
|
| +];
|
| +
|
|
|