Sha256: 25adebf72848f93a91348a98d773f5846929e4ca2be5ffd64be3ec22106d8e45

Contents?: true

Size: 1.82 KB

Versions: 94

Compression:

Stored size: 1.82 KB

Contents

"use strict";

var Q = require("../q");
var fs = require("fs");

suite("A single simple async operation", function () {
    bench("with an immediately-fulfilled promise", function (done) {
        Q().then(done);
    });

    bench("with direct setImmediate usage", function (done) {
        setImmediate(done);
    });

    bench("with direct setTimeout(…, 0)", function (done) {
        setTimeout(done, 0);
    });
});

suite("A fs.readFile", function () {
    var denodeified = Q.denodeify(fs.readFile);

    set("iterations", 1000);
    set("delay", 1000);

    bench("directly, with callbacks", function (done) {
        fs.readFile(__filename, done);
    });

    bench("with Q.nfcall", function (done) {
        Q.nfcall(fs.readFile, __filename).then(done);
    });

    bench("with a Q.denodeify'ed version", function (done) {
        denodeified(__filename).then(done);
    });

    bench("with manual usage of deferred.makeNodeResolver", function (done) {
        var deferred = Q.defer();
        fs.readFile(__filename, deferred.makeNodeResolver());
        deferred.promise.then(done);
    });
});

suite("1000 operations in parallel", function () {
    function makeCounter(desiredCount, ultimateCallback) {
        var soFar = 0;
        return function () {
            if (++soFar === desiredCount) {
                ultimateCallback();
            }
        };
    }
    var numberOfOps = 1000;

    bench("with immediately-fulfilled promises", function (done) {
        var counter = makeCounter(numberOfOps, done);

        for (var i = 0; i < numberOfOps; ++i) {
            Q().then(counter);
        }
    });

    bench("with direct setImmediate usage", function (done) {
        var counter = makeCounter(numberOfOps, done);

        for (var i = 0; i < numberOfOps; ++i) {
            setImmediate(counter);
        }
    });
});

Version data entries

94 entries across 80 versions & 4 rubygems

Version Path
entangled-0.0.14 spec/dummy/public/node_modules/bower/node_modules/p-throttler/node_modules/q/benchmark/compare-with-callbacks.js
entangled-0.0.13 spec/dummy/public/node_modules/bower/node_modules/q/benchmark/compare-with-callbacks.js
entangled-0.0.13 spec/dummy/public/node_modules/karma/node_modules/q/benchmark/compare-with-callbacks.js
entangled-0.0.13 spec/dummy/public/node_modules/bower/node_modules/p-throttler/node_modules/q/benchmark/compare-with-callbacks.js
entangled-0.0.12 spec/dummy/public/node_modules/bower/node_modules/q/benchmark/compare-with-callbacks.js
entangled-0.0.12 spec/dummy/public/node_modules/karma/node_modules/q/benchmark/compare-with-callbacks.js
entangled-0.0.12 spec/dummy/public/node_modules/bower/node_modules/p-throttler/node_modules/q/benchmark/compare-with-callbacks.js
entangled-0.0.11 spec/dummy/public/node_modules/bower/node_modules/q/benchmark/compare-with-callbacks.js
entangled-0.0.11 spec/dummy/public/node_modules/karma/node_modules/q/benchmark/compare-with-callbacks.js
entangled-0.0.11 spec/dummy/public/node_modules/bower/node_modules/p-throttler/node_modules/q/benchmark/compare-with-callbacks.js
entangled-0.0.10 spec/dummy/public/node_modules/bower/node_modules/p-throttler/node_modules/q/benchmark/compare-with-callbacks.js
entangled-0.0.10 spec/dummy/public/node_modules/karma/node_modules/q/benchmark/compare-with-callbacks.js
entangled-0.0.10 spec/dummy/public/node_modules/bower/node_modules/q/benchmark/compare-with-callbacks.js
traceur-rb-0.0.1 vendor/node_modules/traceur/node_modules/q-io/node_modules/q/benchmark/compare-with-callbacks.js