OXYGENHUB

Performance notes: cold views after the oxy-core change 2d58f17e728b

Author
Andy McCall @andymccall <[email protected]>
When
· 2026-09-28 14:24 UTC
Signature
✔ signed by Andy McCall
Hash
2d58f17e728b4125bbd7b5d2be9c692536e336f53bd3b34dc56f0361b38b50df
Depends on
8d194f035eb6
Depended on by
nothing yet
In bookmarks
api-unknown-fields cancel-landed-runs clear-waiting close-proposal-140 diffusion-pin-bookmark draft-ready image-check job-waits main oh-comment-body-file proposal-list-fast run-one-job wiki-says-so
In tags
v0.1.0 v0.2.0 v0.3.0 v0.3.1 v0.4.0 v0.4.1 v0.4.2 v0.5.0 v0.5.1 v0.5.2 v0.6.0 v0.6.1 v0.7.0 v0.8.0 v0.9.0 v0.9.1 v0.9.11 v0.9.15 v0.9.16 v0.9.19 v0.9.2 v0.9.20 v0.9.21 v0.9.22 v0.9.23 v0.9.24 v0.9.3 v0.9.4 v0.9.5 v0.9.6 v0.9.7 v0.9.8 v0.9.9
Edits
1 atom, 0 tree operations, 1 file

Browse the tree at this change

modified docs/performance.md +16 −0
…
29 unchanged lines
30 30
view. The first view of a file still pays the full cost once.
31 31
32 32
`?plain=1` downloads no longer compute the last change or the sidebar.
33 +
34 +
## 2026-09-28: oxy-core history of a loaded state
35 +
36 +
`log_for_path_in` and `blame_in` rebuilt and rendered the whole state on
37 +
every call, and the log was built twice. oxy-core now has `log_of(state)`,
38 +
`log_for_path_of(state, path, limit)` (the path found in the tree alone,
39 +
stopping at `limit`) and `blame_of(state, tree, path)`, and the hub passes
40 +
the state it already holds. First views after a restart (every cache
41 +
empty, including the state cache):
42 +
43 +
| Page | Before any cache | Cold now | Warm |
44 +
|---|---:|---:|---:|
45 +
| `docs/spec.md` | 196 ms | 146 ms | 8 ms |
46 +
| `crates/oxy-core/src/repo/mod.rs` | 400 ms | 256 ms | 17 ms |
47 +
| `crates/oxy-core/src/state.rs` | 317 ms | 121 ms | 16 ms |
48 +
| `…/state.rs?blame=1` | 428 ms | 88 ms | 24 ms |