Skip to content

Index parser lookups and cache aggregate diagnostics - #23

Merged
erseco merged 6 commits into
feature/stream-inputsfrom
perf/indexed-parser
Sep 19, 2026
Merged

erseco merged 6 commits into
feature/stream-inputsfrom
perf/indexed-parser

Conversation

@erseco

@erseco erseco commented Sep 19, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • build immutable indexes for pages, blocks and iDevices after parsing
  • make getPageById(), getBlockById() and getIdeviceById() constant-time lookups
  • cache aggregate block/iDevice lists, page trees, orphan assets, broken references, internal links and package manifests
  • cache asset-reference resolution against archive entries
  • avoid duplicate scans of normalized standard-JSON iDevice state
  • include normalized iDevice state when finding broken asset references
  • record per-project timing, total elapsed time, peak memory and the five slowest upstream fixtures
  • keep performance measurements informational rather than imposing brittle CI thresholds

Stack

This PR is stacked on #22 and targets feature/stream-inputs.

Tests

Adds repeated lookup/cache behavior checks and verifies that normalized standard-JSON state does not double-count asset occurrences.

CI is green on PHP 8.0–8.5, coverage, Composer validation, PHPCS and PHPStan.

@erseco
erseco added this pull request to stack #25 September 19, 2026 20:07
@erseco
erseco force-pushed the perf/indexed-parser branch from 96283b6 to b1cf512 Compare September 19, 2026 20:10
@erseco
erseco merged commit d68ee4c into main Sep 19, 2026
19 checks passed
@erseco
erseco deleted the perf/indexed-parser branch September 19, 2026 20:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant