init: AI培训与智能巡检系统
This commit is contained in:
@@ -0,0 +1,39 @@
|
||||
// 简易性能基准 — 对应 T-1.8 性能验收。
|
||||
// 用法:先启动 API(node dist/main.js),再 `node bench.mjs`
|
||||
const BASE = process.env.BENCH_BASE || 'http://127.0.0.1:3001';
|
||||
const N = Number(process.env.BENCH_N || 200);
|
||||
|
||||
function pct(arr, p) {
|
||||
const s = [...arr].sort((a, b) => a - b);
|
||||
return s[Math.min(s.length - 1, Math.floor((p / 100) * s.length))];
|
||||
}
|
||||
|
||||
async function bench(name, path, threshold) {
|
||||
const lat = [];
|
||||
// 预热
|
||||
for (let i = 0; i < 5; i++) await fetch(`${BASE}${path}`);
|
||||
for (let i = 0; i < N; i++) {
|
||||
const t = performance.now();
|
||||
const res = await fetch(`${BASE}${path}`);
|
||||
await res.text();
|
||||
lat.push(performance.now() - t);
|
||||
}
|
||||
const p50 = pct(lat, 50);
|
||||
const p95 = pct(lat, 95);
|
||||
const ok = p95 < threshold;
|
||||
console.log(
|
||||
`${ok ? '✓' : '✗'} ${name.padEnd(16)} p50=${p50.toFixed(1)}ms ` +
|
||||
`p95=${p95.toFixed(1)}ms (阈值 ${threshold}ms)`,
|
||||
);
|
||||
return ok;
|
||||
}
|
||||
|
||||
const results = [];
|
||||
results.push(await bench('list', '/api/models?pageSize=24', 1500));
|
||||
results.push(await bench('list+filter', '/api/models?category=动车组&sort=max_speed_value&order=desc', 1500));
|
||||
results.push(await bench('detail', '/api/models/1', 1500));
|
||||
results.push(await bench('search', '/api/search?q=HXD', 500));
|
||||
|
||||
const allOk = results.every(Boolean);
|
||||
console.log(`\n基准结果:${allOk ? '全部达标 ✓' : '存在未达标项 ✗'}(每项 ${N} 次请求)`);
|
||||
process.exit(allOk ? 0 : 1);
|
||||
Reference in New Issue
Block a user