Skip to content

Commit 7f0b69e

Browse files
committed
Async vs sync save benchmarks
1 parent 6086e5f commit 7f0b69e

File tree

2 files changed

+57
-0
lines changed

2 files changed

+57
-0
lines changed

async-write.js

+31
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
var taglib = require('./build/Release/taglib');
2+
var async = require('async');
3+
var fs = require('fs');
4+
var match = require('match-files');
5+
6+
var isMp3 = function(path) { return path.match(/\.mp3$/); }
7+
8+
//for (var i = 1; i < 30; i++)
9+
match.find(process.argv[2], {fileFilters: [isMp3]}, function(err, files) {
10+
var t = Date.now();
11+
var count = 0;
12+
console.log(files.length, "files");
13+
async.forEach(files, function(fn, cb) {
14+
var tag = taglib.tag(fn, function(err, tag) {
15+
if (err)
16+
return cb(err);
17+
count++;
18+
var t = tag.title;
19+
var rev = "";
20+
for (var i = 0; i < t.length; i++)
21+
rev = t[i] + rev;
22+
tag.title = rev;
23+
tag.save(function(err) {
24+
cb(err);
25+
});
26+
});
27+
}, function() {
28+
console.log("async", Date.now() - t);
29+
console.log("Tag succeeded on", count);
30+
});
31+
});

sync-write.js

+26
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
var taglib = require('./build/Release/taglib');
2+
var fs = require('fs');
3+
var match = require('match-files');
4+
5+
var isMp3 = function(path) { return path.match(/\.mp3$/); }
6+
7+
//for (var i = 0; i < 10; i++)
8+
match.find(process.argv[2], {fileFilters: [isMp3]}, function(err, files) {
9+
var t = Date.now();
10+
var count = 0;
11+
console.log(files.length, "files");
12+
files.forEach(function(fn) {
13+
try {
14+
var tag = taglib.tagSync(fn);
15+
count++;
16+
var t = tag.title;
17+
var rev = "";
18+
for (var i = 0; i < t.length; i++)
19+
rev = t[i] + rev;
20+
tag.title = rev;
21+
tag.saveSync();
22+
} catch(e) {}
23+
});
24+
console.log("sync", Date.now() - t);
25+
console.log("Tag succeeded on", count);
26+
});

0 commit comments

Comments
 (0)