16 lines
939 B
JavaScript
16 lines
939 B
JavaScript
import { mkdtempSync, rmSync } from 'node:fs';
|
|
import { tmpdir } from 'node:os';
|
|
import { join } from 'node:path';
|
|
import { randomUUID } from 'node:crypto';
|
|
import { Store } from '../src/store.mjs';
|
|
const root = mkdtempSync(join(tmpdir(), 'dw-bench-'));
|
|
const store = new Store(root);
|
|
let ms = Date.parse('2026-10-01T00:00:00.000Z'), have = 0;
|
|
for (const target of [10000, 100000, 500000]) {
|
|
store.transaction(() => { for (; have < target; have++) store.run('INSERT INTO events(id,at,business,kind,actor_role,actor_run,subject,body) VALUES(?,?,?,?,?,?,?,?)', randomUUID(), new Date(ms++).toISOString(), 'demo', 'action.allowed', 'pm', 'pm-run', null, '{"action":"routine"}'); });
|
|
const t0 = performance.now();
|
|
for (let i = 0; i < 5; i++) store.transaction(() => {});
|
|
console.log(`events=${target} empty transaction ms=${((performance.now() - t0) / 5).toFixed(1)}`);
|
|
}
|
|
store.close(); rmSync(root, { recursive: true, force: true });
|