-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathbenchmark.ts
83 lines (57 loc) · 1.55 KB
/
benchmark.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
// This is not really a test, but just a sanity check to ensure
// that our wrapper does not add substantial overhead to `postgres` implementation.
import {
createPostgresBridge,
} from '../../src/bridge';
import test from 'ava';
import {
Pool as PgPool,
// @ts-expect-error-next-line pg types not available
} from 'pg';
import postgres from 'postgres';
const PostgresBridge = createPostgresBridge(postgres);
test.serial('pg: benchmark connection.query()', async (t) => {
const pool = new PgPool({
user: 'postgres',
});
const connection = await pool.connect();
// warm up
await connection.query('SELECT 1');
console.time('pg query');
let index = 1_000;
while (index-- > 0) {
await connection.query('SELECT 1');
}
console.timeEnd('pg query');
t.true(true);
});
test.serial('postgres: benchmark connection.query()', async (t) => {
const sql = postgres({
max: 1,
user: 'postgres',
});
// warm up
await sql`SELECT 1`;
console.time('postgres query');
let index = 1_000;
while (index-- > 0) {
await sql`SELECT 1`;
}
console.timeEnd('postgres query');
t.true(true);
});
test.serial('postgres-bridge: benchmark connection.query()', async (t) => {
const pool = new PostgresBridge({
user: 'postgres',
});
const connection = await pool.connect();
// warm up
await connection.query('SELECT 1');
console.time('postgres-bridge query');
let index = 1_000;
while (index-- > 0) {
await connection.query('SELECT 1');
}
console.timeEnd('postgres-bridge query');
t.true(true);
});