MCPcopy
hub / github.com/brianc/node-postgres / run

Function run

packages/pg/bench.js:38–91  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

36}
37
38const run = async () => {
39 const client = new pg.Client()
40 await client.connect()
41 console.log('start')
42 await client.query('CREATE TEMP TABLE foobar(name TEXT, age NUMERIC)')
43 await client.query('CREATE TEMP TABLE buf(name TEXT, data BYTEA)')
44 await bench(client, params, 1000)
45 console.log('warmup done')
46 const seconds = 5
47
48 for (let i = 0; i < 4; i++) {
49 let queries = await bench(client, params, seconds * 1000)
50 console.log('')
51 console.log('param queries:', queries)
52 console.log('qps', queries / seconds)
53 console.log('on my laptop best so far seen 987 qps')
54
55 queries = await bench(client, { ...params, name: 'params' }, seconds * 1000)
56 console.log('')
57 console.log('named queries:', queries)
58 console.log('qps', queries / seconds)
59 console.log('on my laptop best so far seen 937 qps')
60
61 console.log('')
62 queries = await bench(client, seq, seconds * 1000)
63 console.log('sequence queries:', queries)
64 console.log('qps', queries / seconds)
65 console.log('on my laptop best so far seen 2725 qps')
66
67 console.log('')
68 queries = await bench(client, insert, seconds * 1000)
69 console.log('insert queries:', queries)
70 console.log('qps', queries / seconds)
71 console.log('on my laptop best so far seen 27383 qps')
72
73 console.log('')
74 console.log('Warming up bytea test')
75 await client.query({
76 text: 'INSERT INTO buf(name, data) VALUES ($1, $2)',
77 values: ['test', Buffer.allocUnsafe(104857600)],
78 })
79 console.log('bytea warmup done')
80 const start = performance.now()
81 const results = await client.query('SELECT * FROM buf')
82 const time = performance.now() - start
83 console.log('bytea time:', time, 'ms')
84 console.log('bytea length:', results.rows[0].data.byteLength, 'bytes')
85 console.log('on my laptop best so far seen 1407ms and 104857600 bytes')
86 await new Promise((resolve) => setTimeout(resolve, 250))
87 }
88
89 await client.end()
90 await client.end()
91}
92
93run().catch((e) => console.error(e) || process.exit(-1))

Callers 1

bench.jsFile · 0.70

Calls 4

connectMethod · 0.95
queryMethod · 0.95
endMethod · 0.95
benchFunction · 0.85

Tested by

no test coverage detected