Skip to content

Instantly share code, notes, and snippets.

@endel
Last active October 26, 2017 13:13
Show Gist options
  • Select an option

  • Save endel/676a24b8b5cde3900b6d6a2187a890f8 to your computer and use it in GitHub Desktop.

Select an option

Save endel/676a24b8b5cde3900b6d6a2187a890f8 to your computer and use it in GitHub Desktop.
Benchmarking checksum when applying delta using fossil-delta-js: https://github.com/dchest/fossil-delta-js/pull/1
var Benchmark = require('benchmark');
var fs = require('fs');
var path = require('path');
var fossilDelta = require('../fossil-delta.js');
// Silence error logging.
fossilDelta.logError = function() {}
var makeArray = function(buf) {
var a = new Array(buf.length);
for (var i = 0; i < buf.length; i++) a[i] = buf[i];
return a;
}
var origins = {};
var goodDeltas = {};
var NTESTS = 5;
for (var i = 1; i <= NTESTS; i++) {
var dir = path.join(__dirname, '..', 'test', 'data', i.toString());
origins[i] = makeArray(fs.readFileSync(path.join(dir, 'origin')));
goodDeltas[i] = makeArray(fs.readFileSync(path.join(dir, 'delta')));
}
var suite = new Benchmark.Suite();
suite.add("with checksum", function() {
fossilDelta.ENABLE_CHECKSUM = true;
for (var i = 1; i <= NTESTS; i++) {
fossilDelta.apply(origins[i], goodDeltas[i]);
}
});
suite.add("without checksum", function() {
fossilDelta.ENABLE_CHECKSUM = false;
for (var i = 1; i <= NTESTS; i++) {
fossilDelta.apply(origins[i], goodDeltas[i]);
}
});
suite.on('cycle', function(e) {
console.log( e.target.toString() );
});
suite.run();
with checksum x 10,960 ops/sec ±1.50% (87 runs sampled)
without checksum x 12,438 ops/sec ±1.46% (85 runs sampled)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment