Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

🚧Improve subscriptions and subscription ids #187

Closed
7 tasks done
CalvinWilkinson opened this issue Jan 17, 2024 · 0 comments · Fixed by #191
Closed
7 tasks done

🚧Improve subscriptions and subscription ids #187

CalvinWilkinson opened this issue Jan 17, 2024 · 0 comments · Fixed by #191
Assignees
Labels
🧨breaking-changes Feature/changes contains breaking changes 🐛bug Something isn't working high-priority High Priority 🏎️performance Performance improvements

Comments

@CalvinWilkinson
Copy link
Member

CalvinWilkinson commented Jan 17, 2024

Complete The Item Below

  • I have updated the title without removing the 🚧 emoji.

Description

Improve the subscriptions and subscription id lists of the IReactable interface and its implementations.

Currently, both of the Subscriptions and SubscriptionIds props are ReadOnlyCollections. These can be replaced with a collection that is more performance and also impossible to be mutated.

Look into a faster type that will also give better performance. This could be ImmutableArray or most likely FrozenCollection.

Reason:
This library is heavily used in other KinsoDigital projects. The biggest win here for performance would be for Velaptor. This project contains many subscriptions that are part of the game loop and improving the performance of these would help with the performance for Velaptor

Acceptance Criteria

The items to complete to satisfy the Definition of Done.

ToDo Items

The items to complete to satisfy the Definition of Done.

Issue Dependencies

No response

Related Work

No response

Additional Information:

Unit Tests

Reasons for local unit test execution:

  • Unit tests might pass locally but not in the CI environment during the status check process or vice-versa.
  • Tests might pass on the developer's machine but not necessarily on the code reviewer's machine.
  • If you notice that the test status check has passed but the test failed locally, please notify a project maintainer!

💡Warning💡
If the unit tests pass remotely and are not executed locally, this means we could be letting a bug slip into production.
Though bugs will always exist in some capacity, we should all do our part to help prevent them from happening.

Change Type Labels

Change Type Label
Bug Fixes 🐛bug
Breaking Changes 🧨breaking changes
New Feature ✨new feature
CICD Changes ♻️cicd
Config Changes ⚙️config
Performance Improvements 🏎️performance
Code Doc Changes 🗒️documentation/code
Product Doc Changes 📝documentation/product

Priority Type Labels

Priority Type Label
Low Priority low priority
Medium Priority medium priority
High Priority high priority

Code of Conduct

  • I agree to follow this project's Code of Conduct.
@CalvinWilkinson CalvinWilkinson added medium-priority Medium Priority 🏎️performance Performance improvements labels Jan 17, 2024
@CalvinWilkinson CalvinWilkinson self-assigned this Jan 17, 2024
@CalvinWilkinson CalvinWilkinson added high-priority High Priority and removed medium-priority Medium Priority labels Jan 17, 2024
CalvinWilkinson added a commit that referenced this issue Jan 19, 2024
@CalvinWilkinson CalvinWilkinson added 🧨breaking-changes Feature/changes contains breaking changes 🐛bug Something isn't working labels Jan 19, 2024
@kselena kselena added this to the v1.0.0-preview.17 milestone Jan 22, 2024
CalvinWilkinson added a commit that referenced this issue Jan 22, 2024
* Start work for issue #187

* refactor!: renamed method parameters to id

* perf: cleanup and improve perf project

* config: cleanup and improve solution configs

asdf

* ide: add word to dictionary for vscode users

* ci: add deno permission

* ide: update run/debug configs for rider

* perf: refactored array check for to use TrueForAll instead of All

* refactor!: change the Subscriptions property type

* perf: improve perf of push reactable push method

* perf: improve perf of pull reactable pull method

* chore: suppress warning

* ide: suppress warning in solution level editor config

* chore: add using statements

* chore: perf project improvements

* perf: setup and collect perf data on non directional push reactable

* perf: improve perf of push & pull reactable PushPull method

* config: create run/debug config for push pull reactable perf test

* perf: setup and collect perf data on two way push pull reactable

* perf: adjust table

* chore: move error notification processing to base class

* fix: fix error processing in the two way push pull reactable

* fix: fix error processing in the one way pull reactable

* test: add tests

* refactor: simple code layout changes

* tests: add and improve tests

* ide,test,config: exclude samples project from code coverage results

* cleanup: remove unused usings

* fix: fix issue with pull notification being allowed after disposal

* fix: fix issue with push pull notification being allowed after disposal

* perf: improve perf of on error processing

* perf: improve perf of unsubscribe process

* refactor!: swapped the parameters for the 'Push' and 'PushPull' methods

* docs: update param name in readme code block
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
🧨breaking-changes Feature/changes contains breaking changes 🐛bug Something isn't working high-priority High Priority 🏎️performance Performance improvements
Projects
Archived in project
Development

Successfully merging a pull request may close this issue.

2 participants