Skip to content

Commit 51ed919

Browse files
committed
add js-v-native benchmark
1 parent 7f582a5 commit 51ed919

File tree

1 file changed

+68
-0
lines changed

1 file changed

+68
-0
lines changed

benchmark/js-versus-native-bench.js

+68
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
var pg = require(__dirname + '/../lib')
2+
var pgNative = require(__dirname + '/../lib/native');
3+
var bencher = require('bencher');
4+
var helper = require(__dirname + '/../test/test-helper')
5+
var conString = helper.connectionString()
6+
7+
var round = function(num) {
8+
return Math.round((num*1000))/1000
9+
}
10+
11+
var doBenchmark = function() {
12+
var bench = bencher({
13+
name: 'js/native compare',
14+
repeat: 1000,
15+
actions: [{
16+
name: 'javascript client - simple query',
17+
run: function(next) {
18+
var query = client.query('SELECT name, age FROM person WHERE age > 10');
19+
query.on('end', function() {
20+
next();
21+
});
22+
}
23+
},{
24+
name: 'native client - simple query',
25+
run: function(next) {
26+
var query = nativeClient.query('SELECT name FROM person WHERE age > $1', [10]);
27+
query.on('end', function() {
28+
next();
29+
});
30+
}
31+
}, {
32+
name: 'javascript client - parameterized query',
33+
run: function(next) {
34+
var query = client.query('SELECT name, age FROM person WHERE age > $1', [10]);
35+
query.on('end', function() {
36+
next();
37+
});
38+
}
39+
},{
40+
name: 'native client - parameterized query',
41+
run: function(next) {
42+
var query = nativeClient.query('SELECT name, age FROM person WHERE age > $1', [10]);
43+
query.on('end', function() {
44+
next();
45+
});
46+
}
47+
}]
48+
});
49+
bench(function(result) {
50+
console.log();
51+
console.log("%s (%d repeats):", result.name, result.repeat)
52+
result.actions.forEach(function(action) {
53+
console.log(" %s: \n average: %d ms\n total: %d ms", action.name, round(action.meanTime), round(action.totalTime));
54+
})
55+
client.end();
56+
nativeClient.end();
57+
})
58+
}
59+
60+
var client = new pg.Client(conString);
61+
var nativeClient = new pgNative.Client(conString);
62+
client.connect();
63+
client.on('connect', function() {
64+
nativeClient.connect();
65+
nativeClient.on('connect', function() {
66+
doBenchmark();
67+
});
68+
});

0 commit comments

Comments
 (0)