Skip to content

Conversation

runspired
Copy link
Contributor

@runspired runspired commented Apr 24, 2025

A redesign and streamlining of the current signals integration to prepare for additional frameworks and the split-out to @warp-drive/core

  • move config into @warp-drive/ember/install
  • have ember-data include @warp-drive/ember
  • have @ember-data/store meaningfully error if no configuration was ever done
  • use macroConditions to setup config with deprecation in @ember-data/store if @warp-drive/ember is available
  • use macroConditions to setup config with deprecation in @ember-data/store if @ember-data/tracking is available
  • leave one module in @ember-data/tracking to serve as a conditional import

@github-project-automation github-project-automation bot moved this to needs triage in EmberData Apr 24, 2025
@runspired runspired added 🎯 canary PR is targeting canary (default) 🏷️ chore This PR primarily refactors code or updates dependencies ci-perf Activates Performance Checks in CI labels Apr 24, 2025
Copy link

github-actions bot commented Apr 24, 2025

Performance Report for 89ade2b

Scenario - basic-record-materialization: ☑️ Performance is stable

☑️ duration
phase no difference [-22ms to 8ms]
☑️ Phase [navigationStart] => [start-data-generation]
phase no difference [-1ms to 0ms]
☑️ Phase [start-data-generation] => [start-push-payload]
phase no difference [-1ms to 1ms]
☑️ Phase [start-push-payload] => [start-peek-records]
phase no difference [-4ms to 9ms]
☑️ Phase [start-peek-records] => [start-record-materialization]
phase no difference [0ms to 0ms]
☑️ Phase [start-record-materialization] => [end-record-materialization]
phase no difference [-5ms to 7ms]
✅ Phase [end-record-materialization] => [Test End]
phase estimated improvement -1ms [-3ms to 0ms] OR -3.11% [-8.7% to -0.08%]

Scenario - complex-record-materialization: ☑️ Performance is stable

☑️ duration
phase no difference [-7ms to 7ms]
☑️ Phase [navigationStart] => [start-data-generation]
phase no difference [0ms to 1ms]
☑️ Phase [start-data-generation] => [start-push-payload]
phase no difference [-2ms to 1ms]
☑️ Phase [start-push-payload] => [start-peek-records]
phase no difference [-4ms to 6ms]
☑️ Phase [start-peek-records] => [start-record-materialization]
phase no difference [0ms to 0ms]
☑️ Phase [start-record-materialization] => [end-record-materialization]
phase no difference [-3ms to 1ms]
✅ Phase [end-record-materialization] => [Test End]
phase estimated improvement -1ms [-1ms to 0ms] OR -1.96% [-3.2% to -0.69%]

Scenario - complex-record-materialization-with-relationship-materialization: ☑️ Performance is stable

☑️ duration
phase no difference [-4ms to 10ms]
⚠️ Phase [navigationStart] => [start-data-generation]
phase estimated regression +1ms [0ms to 1ms] OR +0.88% [0.08% to 1.74%]
☑️ Phase [start-data-generation] => [start-push-payload]
phase no difference [-2ms to 1ms]
☑️ Phase [start-push-payload] => [start-peek-records]
phase no difference [-3ms to 8ms]
☑️ Phase [start-peek-records] => [start-record-materialization]
phase no difference [0ms to 0ms]
☑️ Phase [start-record-materialization] => [start-field-access]
phase no difference [-1ms to 3ms]
☑️ Phase [start-field-access] => [start-relationship-access]
phase no difference [-1ms to 1ms]
☑️ Phase [start-relationship-access] => [end-relationship-access]
phase no difference [0ms to 0ms]
☑️ Phase [end-relationship-access] => [Test End]
phase no difference [0ms to 0ms]

Scenario - relationship-materialization-simple: ✅ Performance improved

✅ duration
phase estimated improvement -41ms [-44ms to -37ms] OR -8.62% [-9.4% to -7.92%]
☑️ Phase [navigationStart] => [start-find-all]
phase no difference [0ms to 1ms]
☑️ Phase [start-find-all] => [start-materialization]
phase no difference [-3ms to 0ms]
✅ Phase [start-materialization] => [end-materialization]
phase estimated improvement -40ms [-43ms to -38ms] OR -20.39% [-21.53% to -19.31%]
☑️ Phase [end-materialization] => [Test End]
phase no difference [0ms to 1ms]

Scenario - relationship-materialization-complex: ✅ Performance improved

✅ duration
phase estimated improvement -102ms [-122ms to -84ms] OR -3.59% [-4.27% to -2.93%]
☑️ Phase [navigationStart] => [start-data-generation]
phase no difference [-1ms to 0ms]
✅ Phase [start-data-generation] => [start-push-payload]
phase estimated improvement -5ms [-6ms to -4ms] OR -1.53% [-1.85% to -1.21%]
☑️ Phase [start-push-payload] => [start-peek-records]
phase no difference [-3ms to 6ms]
☑️ Phase [start-peek-records] => [start-record-materialization]
phase no difference [0ms to 0ms]
☑️ Phase [start-record-materialization] => [start-relationship-materialization]
phase no difference [-2ms to 2ms]
✅ Phase [start-relationship-materialization] => [start-push-payload2]
phase estimated improvement -35ms [-48ms to -23ms] OR -2.7% [-3.69% to -1.72%]
☑️ Phase [start-push-payload2] => [start-relationship-materialization2]
phase no difference [-7ms to 2ms]
✅ Phase [start-relationship-materialization2] => [end-relationship-materialization2]
phase estimated improvement -48ms [-51ms to -46ms] OR -24.45% [-25.72% to -23.26%]
✅ Phase [end-relationship-materialization2] => [Test End]
phase estimated improvement -14ms [-16ms to -13ms] OR -8.56% [-9.64% to -7.48%]

Scenario - unload: ☑️ Performance is stable

☑️ duration
phase no difference [-4ms to 2ms]
☑️ Phase [navigationStart] => [start-push-payload]
phase no difference [-1ms to 1ms]
☑️ Phase [start-push-payload] => [start-unload-records]
phase no difference [-2ms to 2ms]
☑️ Phase [start-unload-records] => [end-unload-records]
phase no difference [-2ms to 1ms]
☑️ Phase [end-unload-records] => [Test End]
phase no difference [-1ms to 0ms]

Scenario - unload-all: ⚠️ Performance regressed

⚠️ duration
phase estimated regression +71ms [64ms to 78ms] OR +5.73% [5.18% to 6.28%]
☑️ Phase [navigationStart] => [start-push-payload]
phase no difference [-1ms to 1ms]
☑️ Phase [start-push-payload] => [start-materialization]
phase no difference [-4ms to 3ms]
☑️ Phase [start-materialization] => [start-unload-all]
phase no difference [-2ms to 2ms]
⚠️ Phase [start-unload-all] => [end-unload-all]
phase estimated regression +70ms [67ms to 73ms] OR +25.58% [24.4% to 26.66%]
☑️ Phase [end-unload-all] => [Test End]
phase no difference [0ms to 1ms]

Scenario - destroy: ☑️ Performance is stable

☑️ duration
phase no difference [0ms to 6ms]
☑️ Phase [navigationStart] => [start-push-payload]
phase no difference [-1ms to 1ms]
☑️ Phase [start-push-payload] => [start-destroy-records]
phase no difference [-4ms to 0ms]
☑️ Phase [start-destroy-records] => [end-destroy-records]
phase no difference [-2ms to 2ms]
⚠️ Phase [end-destroy-records] => [Test End]
phase estimated regression +3ms [1ms to 8ms] OR +11.9% [2.88% to 29.83%]

Scenario - add-children: ☑️ Performance is stable

☑️ duration
phase no difference [-1ms to 3ms]
☑️ Phase [navigationStart] => [start-push-initial-payload]
phase no difference [0ms to 1ms]
☑️ Phase [start-push-initial-payload] => [start-push-update-payload]
phase no difference [-1ms to 1ms]
☑️ Phase [start-push-update-payload] => [end-push-update-payload]
phase no difference [0ms to 3ms]
☑️ Phase [end-push-update-payload] => [Test End]
phase no difference [0ms to 1ms]

Scenario - unused-relationships: ☑️ Performance is stable

☑️ duration
phase no difference [-2ms to 3ms]
☑️ Phase [navigationStart] => [start-push-payload]
phase no difference [-1ms to 1ms]
☑️ Phase [start-push-payload] => [end-push-payload]
phase no difference [-2ms to 2ms]
☑️ Phase [end-push-payload] => [Test End]
phase no difference [0ms to 1ms]

Scenario - update-with-same-state: ⚠️ Performance regressed

⚠️ duration
phase estimated regression +23ms [16ms to 28ms] OR +2.05% [1.49% to 2.56%]
☑️ Phase [navigationStart] => [start-data-generation]
phase no difference [0ms to 0ms]
⚠️ Phase [start-data-generation] => [start-push-initial-payload]
phase estimated regression +1ms [0ms to 1ms] OR +0.63% [0.02% to 1.25%]
☑️ Phase [start-push-initial-payload] => [start-peek-records]
phase no difference [0ms to 2ms]
☑️ Phase [start-peek-records] => [start-record-materialization]
phase no difference [0ms to 0ms]
☑️ Phase [start-record-materialization] => [start-relationship-materialization]
phase no difference [-2ms to 1ms]
☑️ Phase [start-relationship-materialization] => [start-local-removal]
phase no difference [-4ms to 3ms]
⚠️ Phase [start-local-removal] => [start-push-minus-one-payload]
phase estimated regression +12ms [11ms to 13ms] OR +4.27% [3.91% to 4.6%]
☑️ Phase [start-push-minus-one-payload] => [start-local-addition]
phase no difference [0ms to 0ms]
⚠️ Phase [start-local-addition] => [start-push-plus-one-payload]
phase estimated regression +7ms [6ms to 8ms] OR +18.35% [15.89% to 21.07%]
⚠️ Phase [start-push-plus-one-payload] => [end-push-plus-one-payload]
phase estimated regression +1ms [1ms to 2ms] OR +2.27% [0.95% to 3.71%]
⚠️ Phase [end-push-plus-one-payload] => [Test End]
phase estimated regression +1ms [0ms to 1ms] OR +2.24% [1.05% to 3.25%]

Scenario - update-with-same-state-m2m: ✅ Performance improved

✅ duration
phase estimated improvement -47ms [-51ms to -43ms] OR -5.12% [-5.58% to -4.64%]
☑️ Phase [navigationStart] => [start-data-generation]
phase no difference [-1ms to 0ms]
☑️ Phase [start-data-generation] => [start-push-initial-payload]
phase no difference [-1ms to 1ms]
☑️ Phase [start-push-initial-payload] => [start-peek-records]
phase no difference [-1ms to 1ms]
☑️ Phase [start-peek-records] => [start-record-materialization]
phase no difference [0ms to 0ms]
☑️ Phase [start-record-materialization] => [start-relationship-materialization]
phase no difference [0ms to 0ms]
☑️ Phase [start-relationship-materialization] => [start-local-removal]
phase no difference [0ms to 0ms]
✅ Phase [start-local-removal] => [start-push-minus-one-payload]
phase estimated improvement -29ms [-30ms to -28ms] OR -19.4% [-20.36% to -18.52%]
☑️ Phase [start-push-minus-one-payload] => [start-local-addition]
phase no difference [-1ms to 0ms]
✅ Phase [start-local-addition] => [start-push-plus-one-payload]
phase estimated improvement -16ms [-18ms to -15ms] OR -12.62% [-13.87% to -11.49%]
☑️ Phase [start-push-plus-one-payload] => [end-push-plus-one-payload]
phase no difference [-1ms to 1ms]
☑️ Phase [end-push-plus-one-payload] => [Test End]
phase no difference [0ms to 0ms]

@runspired runspired force-pushed the pluggable-reactivity branch from 4d43dcf to 2f714c9 Compare April 26, 2025 07:53
@runspired runspired marked this pull request as ready for review April 27, 2025 09:50
@runspired runspired added the 🏷️ feat This PR introduces a new feature label Apr 27, 2025
@runspired runspired merged commit 9c20689 into main Apr 27, 2025
22 of 23 checks passed
@runspired runspired deleted the pluggable-reactivity branch April 27, 2025 22:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
ci-perf Activates Performance Checks in CI 🎯 canary PR is targeting canary (default) 🏷️ chore This PR primarily refactors code or updates dependencies 🏷️ feat This PR introduces a new feature
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant