Skip to content

Stop the cloned section cache cleanup at the first entry that has not expired - #576

Open
BonsUnleashed wants to merge 1 commit into
FiniteReality:20.1/forgefrom
BonsUnleashed:bons-furious/embeddium-section-cache-prefix-cleanup
Open

BonsUnleashed wants to merge 1 commit into
FiniteReality:20.1/forgefrom
BonsUnleashed:bons-furious/embeddium-section-cache-prefix-cleanup

Conversation

@BonsUnleashed

Copy link
Copy Markdown

Proposed Changes

The cloned-section cache checks up to 512 entries every frame, even when none have expired. Its entries are already ordered by last use, so this stops at the first unexpired entry instead of scanning the rest. The five-second timeout and 512-entry limit stay the same.

This depends on the existing monotonic clock assumption. Checks against the compiled original and changed classes covered about 1.5 million cleanups, including invalidation and expiry boundaries, with matching contents and ordering.

The equivalent patch ships in Bons and Furious 1.0.26 for Embeddium 0.3.31. In its isolated benchmark, a full-cache cleanup dropped from about 770 ns to 45 ns; that is not a measured FPS gain.

Compiles on 20.1/forge (compileJava). Not tested in game on this branch.

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