Open
Conversation
- this commit replaces the `Set<LeagueTimeIndex` and `Set<LeagueLocationIndex` with the new bit set
- removed some code
- refactors to fully support bitsets - removed some code - moved some code to their own files - bitset fixes and performance improvements - removed `public` visibility from a lot of stuff since they aren't meant to be available (left over from legacy code)
Owner
Author
|
Shouldn't merge until Swift 6.3 is released because it contains a compilation error (only when building in release mode) fix for |
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.
Use bit sets where possible (for game days, times, locations, entry ids) as a drop-in replacement for heap allocated solutions in an effort improve schedule generation performance (and throughput), mentioned in #3 . Using
@_specializedis unfortunately required since it performs horribly without it.Fixes #5 .
A lot of the data structure had to be updated to support this change and we fallback to the heap allocated solutions for odd-ball schedules.
Other changes this PR contains:
publicfacing code that should have never been (left over from legacy code)LeagueGenerationResultno longer contains theidandsettingsvalues~45% throughput increase over #9 with no change to the failure rate.