Repository navigation
Reduce high CPU usage by eliminating redundant cursor geometry calculations - #441
Closed
itradesize wants to merge 0 commit into
Closed
itradesize wants to merge 0 commit into
itradesize wants to merge 0 commit into
Conversation
itradesize
force-pushed
the
perf/cursor-geometry-upstream-main
branch
from
October 9, 2026 16:52
a416a03 to
bcb2889
Compare
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.
Problem
Codenotch performs repeated geometry and model calculations
during mouse movement, even when the underlying layout has
not changed.
On multi-display setups, each notch controller processes
desktop-wide mouse events, making redundant calculations
particularly expensive.
Runtime CPU profiling identified cursor geometry evaluation
as a major contributor to mouse-related CPU usage.
Changes
This PR reduces redundant calculations within individual
cursor events.
during the same cursor event.
affect layout or positioning.
interactive-region behavior.
No mouse-event throttling, artificial delays, or animation
quality reductions were introduced.
Performance observations
Observed on an Apple Silicon MacBook Pro with four displays.
| Build | Stationary CPU | Mouse movement CPU |
| Original Debug | 6–8% | 30–43% |
| Release before optimization | ~3.6% | 16–19% |
| Optimized Release | 2.4–5% | ≤7.5% |
The Debug-to-Release improvement comes from compiler
optimization and is not attributed to this PR.
The relevant comparison for this change is between the
two Release builds.
These figures are informal Activity Monitor observations
during normal usage, not controlled benchmarks.
Validation
-Oand whole-module optimization verified.git diff --checkpassed.Automated regression tests were not executed during this
submission preparation.
Compatibility
This optimization is independent of PR #431, which addresses
display reconciliation after sleep/wake.
The changes can be applied directly to upstream
mainwithout requiring that fix.