Repository navigation
Conversation
…uild RatEye loads static icon templates lazily inside the first scan of each slot size, under the icon-scan lock, after hashing the whole icon folder. Every engine build (startup, display change, settings, catalog change) therefore made the next icon scan ~300 ms slower. - Bump RatEye to cf5d2c6 (adds RatEyeEngine.WarmUpIconTemplates and drops two per-scan full-image copies). - After a publish, warm the most common slot sizes covering 80% of items (1x1, 2x1, 2x2, 1x2) on a background task, one size at a time under IconScanLock and only while that engine is still published, so a rebuild can never dispose it mid-load. - Latency harness gains a warm-up case. Measured on 2560x1440 fixtures: first icon scan after a build ~490-550 ms -> ~195-230 ms (warm p50 ~185 ms); background warm-up ~620 ms; idle private bytes ~692 MB -> ~715 MB; idle CPU/GPU unchanged. Claude-Session: https://claude.ai/code/session_01QFKiA2aswHyp8SnpraLxE2
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configuration
You can disable this status message by setting the Use the checkbox below for a quick retry:
Comment |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Stacked on #71 — retarget to
masterafter it merges. Depends on tarkovtracker-org/RatEye#5; the submodule points at that PR's head (ee7fa47) and should be re-pointed to the merged SHA before merge.Why
RatEye loads static templates lazily inside the first icon scan of each slot size, under the icon-scan lock, after hashing the icon folder. Every engine build therefore made the next icon scan ~300 ms slower.
What
IconScanLockand only while that engine is still published, so a rebuild can never dispose it mid-load.ToBitmap.engine.icon_warmup_ms.Results (Release, 2560x1440 fixtures, 3 runs)
Validation
IconWarmUpSlotSizesTests(ordering, coverage cut-off, zero sizes, empty catalog); RatEye warm-up tests with mutation proof.dotnet test412/412; CodeRabbit findings fixed (GPU per-instance deltas, ROI Mat disposal).https://claude.ai/code/session_01QFKiA2aswHyp8SnpraLxE2