Repository navigation
Move day-cycle heart-rate processing off the main actor - #2804
Open
AlexSchmidt1999 wants to merge 1 commit into
Open
AlexSchmidt1999 wants to merge 1 commit into
AlexSchmidt1999 wants to merge 1 commit into
Conversation
Author
|
I am using NOOP 12.1.0 Release build 456 on my iPhone 17 Pro Max, and the app runs very smoothly in everyday use. This PR is included in that combined build, together with my other Apple changes and the performance fixes from #2724 by @UtkuDenizAltiok and #2705 by @kavemang. The installed source is d67cceb5. Both Apple builds and the local app, analytics, database and Python test suites passed for this combined build. |
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.
A foreground rescore can merge and sort a full day of heart-rate samples and calculate cycle Effort and calories on the main actor. The existing cache-miss read-and-score block now runs in a utility-priority detached task. Cache access and the result merge stay on the main actor.
The implementation matches the owner's installed 12.1 build. Owner precedence, inclusive read limits, timestamp deduplication, formulas and stored values stay the same. Android calculations are unchanged because this moves existing Apple work between executors.
The integration test uses 80,000 primary HR samples, conflicting timestamps from a second owner and out-of-range points. Effort and calorie bit patterns match the values recorded before the scheduling change for both effort methods and both sex-specific calorie paths. The test also checks cache reuse and invalidation after a new sample.
The iPhone timing report contains the anonymized measurements from the combined build.
Installed-source update, October 16
The read-and-score block and its bit-pattern integration fixture match the installed build.
Review head:
73e8272945f2. A local merge of the PRs reproduces the installed iPhone commitf88a1e12: 1,182 of 1,183 Apple product files are byte-identical; the remaining file uses the existingNoopMetrics.space3token for the same 12-point spacing. The combined macOS build and iPhone Release build pass, including widgets and Watch components. The macOS run completes 2,352 app tests with three skipped and zero failures.