bench: add scale benchmark suite (94 tests)

Benchmark mempalace at configurable scale (1K–100K drawers) to find
real-world performance limits. Tests cover MCP tool OOM thresholds,
ChromaDB query degradation, search recall@k, mining throughput,
knowledge graph concurrency, memory leak detection, palace boost
quantification, and Layer1 unbounded fetch behavior.

- tests/benchmarks/ with 8 test modules + data generator + report system
- Deterministic data factory with planted needles for recall measurement
- JSON report output with regression detection (--bench-report flag)
- CI benchmark job on PRs at small scale
- psutil added as dev dependency for RSS tracking
This commit is contained in:
Igor Lins e Silva
2026-04-07 19:39:06 -03:00
parent 71736a3f4f
commit 7b89291334
15 changed files with 2453 additions and 3 deletions
+8 -2
View File
@@ -38,11 +38,11 @@ Repository = "https://github.com/milla-jovovich/mempalace"
mempalace = "mempalace:main"
[project.optional-dependencies]
dev = ["pytest>=7.0", "ruff>=0.4.0"]
dev = ["pytest>=7.0", "ruff>=0.4.0", "psutil>=5.9"]
spellcheck = ["autocorrect>=2.0"]
[dependency-groups]
dev = ["pytest>=7.0", "ruff>=0.4.0"]
dev = ["pytest>=7.0", "ruff>=0.4.0", "psutil>=5.9"]
[build-system]
requires = ["hatchling"]
@@ -64,3 +64,9 @@ quote-style = "double"
[tool.pytest.ini_options]
testpaths = ["tests"]
pythonpath = ["."]
markers = [
"benchmark: scale/performance benchmark tests",
"slow: tests that take more than 30 seconds",
"stress: destructive scale tests (100K+ drawers)",
]