mirror of
https://github.com/blitzkit/blitzkit.git
synced 2026-10-23 19:49:50 +02:00
feat: ratings leaderboard efficiency plot script
This commit is contained in:
1 parent
393da234e4
commit
5bf83da726
3 files changed
+48
No files matched your search
Vendored
+1
@@ -25,6 +25,7 @@
|
|||||||
"playerachievements",
|
"playerachievements",
|
||||||
"playerinfo",
|
"playerinfo",
|
||||||
"ratingsleaderboard",
|
"ratingsleaderboard",
|
||||||
|
"ratingsplot",
|
||||||
"Resvg",
|
"Resvg",
|
||||||
"roboto",
|
"roboto",
|
||||||
"searchclans",
|
"searchclans",
|
||||||
|
|||||||
@@ -10,6 +10,7 @@
|
|||||||
"build:docs": "vitepress build docs",
|
"build:docs": "vitepress build docs",
|
||||||
"build:ratingsleaderboard": "vite-node --script scripts/buildRatingsLeaderboard",
|
"build:ratingsleaderboard": "vite-node --script scripts/buildRatingsLeaderboard",
|
||||||
"build:tankopedia": "vite-node --script scripts/buildTankopedia",
|
"build:tankopedia": "vite-node --script scripts/buildTankopedia",
|
||||||
|
"build:ratingsplot": "vite-node --script scripts/buildRatingsPlot",
|
||||||
"dev:bot": "yarn build:bot && yarn start:bot",
|
"dev:bot": "yarn build:bot && yarn start:bot",
|
||||||
"dev:docs": "vitepress dev docs",
|
"dev:docs": "vitepress dev docs",
|
||||||
"dev:website": "next dev",
|
"dev:website": "next dev",
|
||||||
|
|||||||
@@ -0,0 +1,46 @@
|
|||||||
|
import { writeFile } from 'fs/promises';
|
||||||
|
import { Region } from '../src/constants/regions';
|
||||||
|
import { getRatingsNeighbors } from '../src/core/blitz/getRatingsNeighbors';
|
||||||
|
|
||||||
|
const REGION: Region = 'com';
|
||||||
|
const PLAYER = 1041988373;
|
||||||
|
const ITERATIONS = 2 ** 4;
|
||||||
|
const MAX_NEIGHBORS = 2 ** 7;
|
||||||
|
const data: [number, number][] = [];
|
||||||
|
let finished = 0;
|
||||||
|
|
||||||
|
for (let index = 0; index < ITERATIONS; index++) {
|
||||||
|
const neighbors = Math.round((Math.random() * MAX_NEIGHBORS) / 2) * 2;
|
||||||
|
const start = Date.now();
|
||||||
|
|
||||||
|
console.log(`🟡 Iteration ${index} with ${neighbors} neighbors`);
|
||||||
|
|
||||||
|
try {
|
||||||
|
await getRatingsNeighbors(REGION, PLAYER, neighbors);
|
||||||
|
|
||||||
|
finished++;
|
||||||
|
console.log(
|
||||||
|
`🟢 (${Math.round(
|
||||||
|
100 * (finished / ITERATIONS),
|
||||||
|
)}%) Iteration ${index} with ${neighbors} neighbors`,
|
||||||
|
);
|
||||||
|
|
||||||
|
const end = Date.now();
|
||||||
|
const time = end - start;
|
||||||
|
|
||||||
|
data.push([neighbors, time]);
|
||||||
|
} catch (error) {
|
||||||
|
console.log(
|
||||||
|
`🔴 Iteration ${index} with ${neighbors} neighbors\n\n${error}`,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
console.log('🟢 Done, sorting');
|
||||||
|
data.sort(([neighborsA], [neighborsB]) => neighborsA - neighborsB);
|
||||||
|
|
||||||
|
console.log('🟢 Writing');
|
||||||
|
writeFile(
|
||||||
|
'dist/ratingsPlot.csv',
|
||||||
|
data.map(([neighbors, time]) => `${neighbors},${time}`).join('\n'),
|
||||||
|
);
|
||||||
Reference in new issue
Block a user