feat: Implement optimization plan for Markov Discord bot

- Added `optimization-plan.md` detailing strategies to reduce response latency and improve training throughput.
- Enhanced performance analysis in `performance-analysis.md` with identified bottlenecks and completed optimizations.
- Created `productContext.md` summarizing project goals, user scenarios, and implementation priorities.
- Developed `markov-store.ts` for high-performance serialized chain storage with alias method sampling.
- Implemented database performance indexes in `1704067200000-AddPerformanceIndexes.ts`.
- Introduced `markov-worker.ts` for handling CPU-intensive operations in separate threads.
- Established a worker pool in `worker-pool.ts` to manage multiple worker threads efficiently.
This commit is contained in:
pacnpal
2025-09-25 13:39:22 -04:00
parent 239ded1669
commit 1f0a2573c4
15 changed files with 4082 additions and 335 deletions

View File

@@ -31,45 +31,47 @@
},
"license": "MIT",
"dependencies": {
"better-sqlite3": "^9.6.0",
"bufferutil": "^4.0.8",
"@types/stream-json": "^1.7.8",
"better-sqlite3": "^12.4.1",
"bufferutil": "^4.0.9",
"class-transformer": "^0.5.1",
"class-validator": "^0.14.1",
"date-fns": "^2.28.0",
"discord.js": "^14.15.3",
"dotenv": "^16.4.5",
"fs-extra": "^11.2.0",
"class-validator": "^0.14.2",
"date-fns": "^4.1.0",
"discord.js": "^14.22.1",
"dotenv": "^17.2.2",
"fs-extra": "^11.3.2",
"json5": "^2.2.3",
"markov-strings-db": "^4.2.0",
"node-fetch": "^2.6.7",
"node-gyp": "^11.0.0",
"pino": "^7.11.0",
"pino-pretty": "^7.6.1",
"markov-strings-db": "^4.3.0",
"node-fetch": "^3.3.2",
"node-gyp": "^11.4.2",
"pino": "^9.11.0",
"pino-pretty": "^13.1.1",
"reflect-metadata": "^0.2.2",
"simple-eta": "^3.0.2",
"source-map-support": "^0.5.21",
"typeorm": "^0.3.20",
"utf-8-validate": "^6.0.4",
"zlib-sync": "^0.1.9"
"stream-json": "^1.9.1",
"typeorm": "^0.3.27",
"utf-8-validate": "^6.0.5",
"zlib-sync": "^0.1.10"
},
"devDependencies": {
"@types/fs-extra": "^11.0.4",
"@types/node": "^20.14.11",
"@types/validator": "^13.12.0",
"@typescript-eslint/eslint-plugin": "^7.16.1",
"@typescript-eslint/parser": "^7.16.1",
"eslint": "^8.57.0",
"@types/node": "^24.5.2",
"@types/validator": "^13.15.3",
"@typescript-eslint/eslint-plugin": "^8.44.1",
"@typescript-eslint/parser": "^8.44.1",
"eslint": "^9.36.0",
"eslint-config-airbnb-base": "^15.0.0",
"eslint-config-prettier": "^9.1.0",
"eslint-plugin-import": "^2.29.1",
"eslint-plugin-prettier": "^5.2.1",
"pm2": "^5.4.2",
"prettier": "^3.3.3",
"eslint-config-prettier": "^10.1.8",
"eslint-plugin-import": "^2.32.0",
"eslint-plugin-prettier": "^5.5.4",
"pm2": "^6.0.13",
"prettier": "^3.6.2",
"rimraf": "^6.0.1",
"ts-node": "^10.9.2",
"typedoc": "^0.26.4",
"typedoc": "^0.28.13",
"types-package-json": "^2.0.39",
"typescript": "5.4"
"typescript": "~5.9.2"
},
"engines": {
"node": ">=20"