1
0
Fork 0
Code Issues Pull requests Projects Releases 2 Packages Wiki Activity Actions Pages

Record Milestone 0 performance baseline

This commit is contained in:
Andraxion 2026-07-29 03:20:09 -04:00
parent fd4759096e
commit cb59a822a8
5 changed files with 542 additions and 11 deletions

29
benchmarks/README.md Normal file
View file

@ -0,0 +1,29 @@
# Benchmarks
Milestone 0 records measurements before changing compiler, storage, rendering, or response
contracts.
Run the maintained smoke benchmark:
```bash
make benchmark-smoke
```
Run the 1,000-node generic baseline:
```bash
make benchmark
```
The benchmark creates canonical sources, derived state, changesets, rendered output, and caches
only in a disposable temporary directory. It does not read another project, self-host DocForge, or
mutate repository content.
`milestone0-2026-07-29.json` is the clean-tree baseline captured from commit
`fd4759096e90edb13a745621aae4872f23079357`. It uses compact sorted JSON for response sizes and
`time.perf_counter_ns()` for durations. The file is data, not a performance threshold. Later work
must explain fixture or environment changes before comparing results.
The generic fixture exposes whole-source scaling. It does not replace the incremental adapter
equivalence tests and does not claim to measure a portable graph renderer, because Milestone 0 has
no portable graph-planning or graph-rendering contract.

View file

@ -0,0 +1,282 @@
{
"benchmark": "docforge2_milestone0",
"environment": {
"implementation": "CPython",
"machine": "x86_64",
"platform": "Linux-7.1.3-200.nobara.fc44.x86_64-x86_64-with-glibc2.43",
"python": "3.14.6"
},
"fixture": {
"context_budget_tokens": 32000,
"edge_count": 999,
"kind": "synthetic_generic",
"node_count": 1000,
"source_file_count": 1000,
"traversal_depth": 8
},
"known_gaps": [
"Generic warm reads still parse canonical source files.",
"Compiler stages are not separately instrumented.",
"Scaled incremental extraction is not measured by this generic fixture.",
"Manual planning is not separated from rendering.",
"Portable graph planning and rendering do not exist in Milestone 0.",
"Per-operation peak RSS requires an external process harness."
],
"method": {
"clock": "time.perf_counter_ns",
"cold_samples": 3,
"memory": "resource.getrusage(RUSAGE_SELF).ru_maxrss",
"response_size": "UTF-8 bytes of compact sorted JSON",
"samples": 10
},
"operations": {
"changeset_diff": {
"max_ms": 151.704,
"median_ms": 148.23,
"min_ms": 145.184,
"p95_ms": 151.704,
"response_bytes": 1575,
"samples": 10
},
"changeset_register": {
"max_ms": 215.227,
"median_ms": 212.281,
"min_ms": 210.251,
"p95_ms": 215.227,
"response_bytes": 1013,
"samples": 10
},
"changeset_validate": {
"max_ms": 162.789,
"median_ms": 148.522,
"min_ms": 145.624,
"p95_ms": 162.789,
"response_bytes": 969,
"samples": 10
},
"cli_exact_startup": {
"max_ms": 370.763,
"median_ms": 369.681,
"min_ms": 368.637,
"p95_ms": 370.763,
"response_bytes": 814,
"samples": 3
},
"cli_info_startup": {
"max_ms": 215.402,
"median_ms": 214.045,
"min_ms": 212.262,
"p95_ms": 215.402,
"response_bytes": 407,
"samples": 3
},
"cold_synchronize": {
"max_ms": 696.071,
"median_ms": 692.605,
"min_ms": 689.365,
"p95_ms": 696.071,
"response_bytes": 870,
"samples": 3
},
"context_32k": {
"max_ms": 453.055,
"median_ms": 436.897,
"min_ms": 427.958,
"p95_ms": 453.055,
"response_bytes": 258034,
"samples": 10
},
"dependencies_depth_8": {
"max_ms": 291.129,
"median_ms": 287.791,
"min_ms": 286.129,
"p95_ms": 291.129,
"response_bytes": 1650,
"samples": 10
},
"exact_hash_apply_and_refresh": {
"max_ms": 1253.231,
"median_ms": 1253.231,
"min_ms": 1253.231,
"p95_ms": 1253.231,
"response_bytes": 3509,
"samples": 1
},
"exact_node": {
"max_ms": 304.226,
"median_ms": 286.306,
"min_ms": 283.013,
"p95_ms": 304.226,
"response_bytes": 696,
"samples": 10
},
"full_index_build": {
"max_ms": 289.531,
"median_ms": 277.172,
"min_ms": 276.361,
"p95_ms": 289.531,
"response_bytes": 661,
"samples": 3
},
"full_index_check": {
"max_ms": 157.888,
"median_ms": 148.778,
"min_ms": 143.19,
"p95_ms": 157.888,
"response_bytes": 661,
"samples": 10
},
"impact_depth_8": {
"max_ms": 290.636,
"median_ms": 288.28,
"min_ms": 285.26,
"p95_ms": 290.636,
"response_bytes": 1650,
"samples": 10
},
"manual_render": {
"max_ms": 283.38,
"median_ms": 280.007,
"min_ms": 279.406,
"p95_ms": 283.38,
"response_bytes": 757,
"samples": 3
},
"manual_render_status": {
"max_ms": 155.833,
"median_ms": 150.591,
"min_ms": 148.979,
"p95_ms": 155.833,
"response_bytes": 760,
"samples": 10
},
"mcp_bootstrap": {
"max_ms": 277.901,
"median_ms": 273.41,
"min_ms": 271.248,
"p95_ms": 277.901,
"response_bytes": 1720,
"samples": 10
},
"mcp_context_32k": {
"max_ms": 447.168,
"median_ms": 434.853,
"min_ms": 430.848,
"p95_ms": 447.168,
"response_bytes": 258224,
"samples": 10
},
"mcp_exact_node": {
"max_ms": 298.913,
"median_ms": 287.094,
"min_ms": 284.413,
"p95_ms": 298.913,
"response_bytes": 886,
"samples": 10
},
"mcp_import_and_help": {
"max_ms": 300.449,
"median_ms": 299.278,
"min_ms": 297.873,
"p95_ms": 300.449,
"response_bytes": 536,
"samples": 3
},
"mcp_render_status": {
"max_ms": 164.194,
"median_ms": 150.758,
"min_ms": 147.522,
"p95_ms": 164.194,
"response_bytes": 950,
"samples": 10
},
"mcp_search_limit_20": {
"max_ms": 307.09,
"median_ms": 289.737,
"min_ms": 284.139,
"p95_ms": 307.09,
"response_bytes": 10502,
"samples": 10
},
"project_load": {
"max_ms": 132.255,
"median_ms": 128.65,
"min_ms": 127.489,
"p95_ms": 132.255,
"samples": 10
},
"project_open": {
"max_ms": 0.607,
"median_ms": 0.584,
"min_ms": 0.568,
"p95_ms": 0.607,
"samples": 10
},
"search_limit_20": {
"max_ms": 301.227,
"median_ms": 288.793,
"min_ms": 286.57,
"p95_ms": 301.227,
"response_bytes": 10312,
"samples": 10
},
"viewer_neighborhood_depth_8": {
"max_ms": 0.46,
"median_ms": 0.425,
"min_ms": 0.41,
"p95_ms": 0.46,
"response_bytes": 4891,
"samples": 10
},
"viewer_overview": {
"max_ms": 1.124,
"median_ms": 1.078,
"min_ms": 1.048,
"p95_ms": 1.124,
"response_bytes": 977,
"samples": 10
},
"viewer_search_limit_20": {
"max_ms": 1.389,
"median_ms": 1.363,
"min_ms": 1.344,
"p95_ms": 1.389,
"response_bytes": 10423,
"samples": 10
},
"viewer_snapshot_pin": {
"max_ms": 143.9,
"median_ms": 143.761,
"min_ms": 143.569,
"p95_ms": 143.9,
"samples": 3
},
"viewer_web_depth_8": {
"max_ms": 0.899,
"median_ms": 0.396,
"min_ms": 0.353,
"p95_ms": 0.899,
"response_bytes": 5811,
"samples": 10
},
"warm_no_change_synchronize": {
"max_ms": 145.926,
"median_ms": 142.479,
"min_ms": 140.151,
"p95_ms": 145.926,
"response_bytes": 779,
"samples": 10
}
},
"process_peak_rss_kib": 528228,
"schema_version": 1,
"sizes": {
"context_compact_bytes": 258034,
"manual_artifact_bytes": 583150,
"static_viewer_assets_bytes": 105244
},
"source": {
"dirty": false,
"revision": "fd4759096e90edb13a745621aae4872f23079357"
}
}