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

chore: relationship cleanup #8130

Merged
merged 11 commits into from
Aug 18, 2022
Merged

chore: relationship cleanup #8130

merged 11 commits into from
Aug 18, 2022

Conversation

runspired
Copy link
Contributor

Some minor refactoring to the relationship layer to better prepare it for lazy-calcs and diff-storage. Somewhat a recreation of the early parts of #7521

@runspired runspired added 🎯 canary PR is targeting canary (default) 🏷️ chore This PR primarily refactors code or updates dependencies labels Aug 17, 2022
@github-actions
Copy link

github-actions bot commented Aug 17, 2022

Asset Size Report for bf688fc

Modern Builds

✅ EmberData shrank by -1.31 KB (-157.0 B compressed)

Warnings

⚠️ The uncompressed size of the package @ember-data/model has increased by +38.0 B.

Changeset


EmberData +168.85 KB -1.31 KB (+35.32 KB -157.0 B compressed)
    @ember-data/model +45.38 KB +38.0 B (+9.49 KB +4.46 B compressed)
        @ember-data/model/-private +44.9 KB +38.0 B (+9.39 KB +4.46 B compressed)
    @ember-data/record-data +22.25 KB -1.23 KB (+4.65 KB -148.32 B compressed)
        @ember-data/record-data/-private +22.25 KB -1.23 KB (+4.65 KB -148.32 B compressed)
    ember-data +8.55 KB -112.0 B (+1.79 KB -13.14 B compressed)
        ember-data/index +2.08 KB -33.0 B (+444.72 B -3.87 B compressed)
        ember-data/-private +1.67 KB -79.0 B (+357.7 B -9.27 B compressed)

Full Asset Analysis (Modern)

Asset Size Report
=================


Library: EmberData
┌────────────┬─────────────┐
│  (index)   │   Values    │
├────────────┼─────────────┤
│   bytes    │ '168.85 KB' │
│ compressed │ '35.32 KB'  │
│  packages  │      8      │
│  modules   │     44      │
└────────────┴─────────────┘

Package: @ember-data/store
┌──────────────┬────────────┐
│   (index)    │   Values   │
├──────────────┼────────────┤
│    bytes     │ '46.89 KB' │
│  compressed  │ '9.81 KB'  │
│ % Of Library │   '27.8'   │
└──────────────┴────────────┘
	Module                                            | Bytes     | Compressed | % of Package  | % Of Library
	-----------------------------------------------------------------------------------------------------
	@ember-data/store/-private                        | 45.89 KB  | 9.60 KB    | 97.9          | 27.2
	@ember-data/store/index                           | 1022.00 B | 213.78 B   | 2.1           | 0.6

Package: @ember-data/model
┌──────────────┬────────────┐
│   (index)    │   Values   │
├──────────────┼────────────┤
│    bytes     │ '45.38 KB' │
│  compressed  │ '9.49 KB'  │
│ % Of Library │   '26.9'   │
└──────────────┴────────────┘
	Module                                            | Bytes     | Compressed | % of Package  | % Of Library
	-----------------------------------------------------------------------------------------------------
	@ember-data/model/-private                        | 44.90 KB  | 9.39 KB    | 99.0          | 26.6
	@ember-data/model/index                           | 486.00 B  | 101.66 B   | 1.0           | 0.3

Package: @ember-data/record-data
┌──────────────┬────────────┐
│   (index)    │   Values   │
├──────────────┼────────────┤
│    bytes     │ '22.25 KB' │
│  compressed  │ '4.65 KB'  │
│ % Of Library │   '13.2'   │
└──────────────┴────────────┘
	Module                                            | Bytes     | Compressed | % of Package  | % Of Library
	-----------------------------------------------------------------------------------------------------
	@ember-data/record-data/-private                  | 22.25 KB  | 4.65 KB    | 100.0         | 13.2

Package: @ember-data/serializer
┌──────────────┬────────────┐
│   (index)    │   Values   │
├──────────────┼────────────┤
│    bytes     │ '20.42 KB' │
│  compressed  │ '4.27 KB'  │
│ % Of Library │   '12.1'   │
└──────────────┴────────────┘
	Module                                            | Bytes     | Compressed | % of Package  | % Of Library
	-----------------------------------------------------------------------------------------------------
	@ember-data/serializer/json                       | 7.36 KB   | 1.54 KB    | 36.0          | 4.4
	@ember-data/serializer/-private                   | 5.60 KB   | 1.17 KB    | 27.4          | 3.3
	@ember-data/serializer/json-api                   | 3.79 KB   | 811.84 B   | 18.6          | 2.2
	@ember-data/serializer/rest                       | 2.87 KB   | 613.75 B   | 14.0          | 1.7
	@ember-data/serializer/index                      | 611.00 B  | 127.81 B   | 2.9           | 0.4
	@ember-data/serializer/transform                  | 215.00 B  | 44.97 B    | 1.0           | 0.1

Package: @ember-data/adapter
┌──────────────┬────────────┐
│   (index)    │   Values   │
├──────────────┼────────────┤
│    bytes     │ '15.93 KB' │
│  compressed  │ '3.33 KB'  │
│ % Of Library │   '9.4'    │
└──────────────┴────────────┘
	Module                                            | Bytes     | Compressed | % of Package  | % Of Library
	-----------------------------------------------------------------------------------------------------
	@ember-data/adapter/rest                          | 7.88 KB   | 1.65 KB    | 49.5          | 4.7
	@ember-data/adapter/-private                      | 3.79 KB   | 810.80 B   | 23.8          | 2.2
	@ember-data/adapter/error                         | 1.82 KB   | 390.34 B   | 11.4          | 1.1
	@ember-data/adapter/index                         | 1.41 KB   | 302.48 B   | 8.9           | 0.8
	@ember-data/adapter/json-api                      | 1.03 KB   | 221.52 B   | 6.5           | 0.6

Package: ember-data
┌──────────────┬───────────┐
│   (index)    │  Values   │
├──────────────┼───────────┤
│    bytes     │ '8.55 KB' │
│  compressed  │ '1.79 KB' │
│ % Of Library │   '5.1'   │
└──────────────┴───────────┘
	Module                                            | Bytes     | Compressed | % of Package  | % Of Library
	-----------------------------------------------------------------------------------------------------
	ember-data/index                                  | 2.08 KB   | 444.72 B   | 24.3          | 1.2
	ember-data/-private                               | 1.67 KB   | 357.70 B   | 19.5          | 1.0
	ember-data/adapters/errors                        | 1.19 KB   | 254.57 B   | 13.9          | 0.7
	ember-data/setup-container                        | 368.00 B  | 76.98 B    | 4.2           | 0.2
	ember-data/relationships                          | 318.00 B  | 66.52 B    | 3.6           | 0.2
	ember-data/serializers/embedded-records-mixin     | 274.00 B  | 57.31 B    | 3.1           | 0.2
	ember-data/serializers/json-api                   | 251.00 B  | 52.50 B    | 2.9           | 0.1
	ember-data/adapters/json-api                      | 245.00 B  | 51.25 B    | 2.8           | 0.1
	ember-data/serializers/json                       | 243.00 B  | 50.83 B    | 2.8           | 0.1
	ember-data/serializers/rest                       | 243.00 B  | 50.83 B    | 2.8           | 0.1
	ember-data/transform                              | 241.00 B  | 50.41 B    | 2.8           | 0.1
	ember-data/adapters/rest                          | 237.00 B  | 49.57 B    | 2.7           | 0.1
	ember-data/serializer                             | 232.00 B  | 48.53 B    | 2.7           | 0.1
	ember-data/adapter                                | 226.00 B  | 47.27 B    | 2.6           | 0.1
	ember-data/model                                  | 222.00 B  | 46.43 B    | 2.5           | 0.1
	ember-data/store                                  | 222.00 B  | 46.43 B    | 2.5           | 0.1
	ember-data/attr                                   | 218.00 B  | 45.60 B    | 2.5           | 0.1
	ember-data/version                                | 161.00 B  | 33.67 B    | 1.8           | 0.1

Package: ember-inflector
┌──────────────┬───────────┐
│   (index)    │  Values   │
├──────────────┼───────────┤
│    bytes     │ '6.67 KB' │
│  compressed  │ '1.39 KB' │
│ % Of Library │   '3.9'   │
└──────────────┴───────────┘
	Module                                            | Bytes     | Compressed | % of Package  | % Of Library
	-----------------------------------------------------------------------------------------------------
	ember-inflector/lib/system/inflector              | 2.96 KB   | 634.66 B   | 44.4          | 1.8
	ember-inflector/lib/system/inflections            | 1.59 KB   | 340.34 B   | 23.8          | 0.9
	ember-inflector/lib/system                        | 471.00 B  | 98.52 B    | 6.9           | 0.3
	ember-inflector/index                             | 379.00 B  | 79.28 B    | 5.6           | 0.2
	ember-inflector/lib/helpers/pluralize             | 369.00 B  | 77.18 B    | 5.4           | 0.2
	ember-inflector/lib/utils/make-helper             | 332.00 B  | 69.44 B    | 4.9           | 0.2
	ember-inflector/lib/system/string                 | 318.00 B  | 66.52 B    | 4.7           | 0.2
	ember-inflector/lib/helpers/singularize           | 296.00 B  | 61.91 B    | 4.3           | 0.2

Package: @ember-data/debug
┌──────────────┬────────────┐
│   (index)    │   Values   │
├──────────────┼────────────┤
│    bytes     │ '2.77 KB'  │
│  compressed  │ '592.62 B' │
│ % Of Library │   '1.6'    │
└──────────────┴────────────┘
	Module                                            | Bytes     | Compressed | % of Package  | % Of Library
	-----------------------------------------------------------------------------------------------------
	@ember-data/debug/index                           | 2.27 KB   | 486.98 B   | 82.2          | 1.3
	@ember-data/debug/setup                           | 505.00 B  | 105.63 B   | 17.8          | 0.3

Modern Builds (No Rollup)

☑️ EmberData has not changed in size

If any packages had changed sizes they would be listed here.

Changeset



Full Asset Analysis (Modern)

Asset Size Report
=================


Library: EmberData
┌────────────┬──────────┐
│  (index)   │  Values  │
├────────────┼──────────┤
│   bytes    │ '0.00 B' │
│ compressed │ '1.00 B' │
│  packages  │    0     │
│  modules   │    0     │
└────────────┴──────────┘

@github-actions
Copy link

github-actions bot commented Aug 17, 2022

Performance Report for bf688fc

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

☑️ duration
phase no difference [-126ms to 14ms]
☑️ Phase [navigationStart] => [start-data-generation]
phase no difference [-7ms to 7ms]
☑️ Phase [start-data-generation] => [start-push-payload]
phase no difference [-12ms to 7ms]
✅ Phase [start-push-payload] => [start-peek-records]
phase estimated improvement -74ms [-109ms to -39ms] OR -2.53% [-3.71% to -1.31%]
☑️ Phase [start-peek-records] => [start-record-materialization]
phase no difference [-2ms to 4ms]
☑️ Phase [start-record-materialization] => [end-record-materialization]
phase no difference [-37ms to 49ms]
☑️ Phase [end-record-materialization] => [Test End]
phase no difference [-2ms to 23ms]

Scenario - relationship-materialization-simple: ✅ Performance improved

✅ duration
phase estimated improvement -27ms [-51ms to -3ms] OR -2.03% [-3.87% to -0.24%]
☑️ Phase [navigationStart] => [start-find-all]
phase no difference [-6ms to 10ms]
✅ Phase [start-find-all] => [start-materialization]
phase estimated improvement -15ms [-23ms to -6ms] OR -2.81% [-4.48% to -1.22%]
☑️ Phase [start-materialization] => [end-materialization]
phase no difference [-9ms to 7ms]
☑️ Phase [end-materialization] => [Test End]
phase no difference [-2ms to 0ms]

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

☑️ duration
phase no difference [-79ms to 75ms]
☑️ Phase [navigationStart] => [start-data-generation]
phase no difference [-5ms to 10ms]
☑️ Phase [start-data-generation] => [start-push-payload]
phase no difference [-6ms to 2ms]
✅ Phase [start-push-payload] => [start-peek-records]
phase estimated improvement -22ms [-40ms to -3ms] OR -1.48% [-2.77% to -0.19%]
☑️ Phase [start-peek-records] => [start-record-materialization]
phase no difference [-1ms to 3ms]
☑️ Phase [start-record-materialization] => [start-relationship-materialization]
phase no difference [-9ms to 12ms]
☑️ Phase [start-relationship-materialization] => [end-relationship-materialization]
phase no difference [-32ms to 76ms]
✅ Phase [end-relationship-materialization] => [Test End]
phase estimated improvement -11ms [-21ms to 0ms] OR -1.74% [-3.48% to -0.01%]

Scenario - unload: ☑️ Performance is stable

☑️ duration
phase no difference [-27ms to 20ms]
☑️ Phase [navigationStart] => [start-push-payload]
phase no difference [-12ms to 8ms]
☑️ Phase [start-push-payload] => [start-unload-records]
phase no difference [-12ms to 11ms]
☑️ Phase [start-unload-records] => [end-unload-records]
phase no difference [-4ms to 5ms]
☑️ Phase [end-unload-records] => [Test End]
phase no difference [-2ms to 0ms]

Scenario - unload-all: ☑️ Performance is stable

☑️ duration
phase no difference [-105ms to 31ms]
☑️ Phase [navigationStart] => [start-push-payload]
phase no difference [-18ms to 17ms]
☑️ Phase [start-push-payload] => [start-materialization]
phase no difference [-43ms to 20ms]
☑️ Phase [start-materialization] => [start-unload-all]
phase no difference [-40ms to 2ms]
☑️ Phase [start-unload-all] => [end-unload-all]
phase no difference [-17ms to 9ms]
☑️ Phase [end-unload-all] => [Test End]
phase no difference [-2ms to 1ms]

Scenario - destroy: ☑️ Performance is stable

☑️ duration
phase no difference [-9ms to 36ms]
☑️ Phase [navigationStart] => [start-push-payload]
phase no difference [-8ms to 15ms]
☑️ Phase [start-push-payload] => [start-destroy-records]
phase no difference [-13ms to 14ms]
⚠️ Phase [start-destroy-records] => [end-destroy-records]
phase estimated regression +9ms [4ms to 13ms] OR +3.41% [1.55% to 5.2%]
✅ Phase [end-destroy-records] => [Test End]
phase estimated improvement -1ms [-2ms to 0ms] OR -1.96% [-3.87% to -0.05%]

Scenario - add-children: ☑️ Performance is stable

☑️ duration
phase no difference [-9ms to 25ms]
☑️ Phase [navigationStart] => [start-push-initial-payload]
phase no difference [-6ms to 17ms]
☑️ Phase [start-push-initial-payload] => [start-push-update-payload]
phase no difference [-2ms to 7ms]
☑️ Phase [start-push-update-payload] => [end-push-update-payload]
phase no difference [-4ms to 6ms]
☑️ Phase [end-push-update-payload] => [Test End]
phase no difference [-1ms to 1ms]

Scenario - unused-relationships: ☑️ Performance is stable

☑️ duration
phase no difference [-9ms to 21ms]
☑️ Phase [navigationStart] => [start-push-payload]
phase no difference [-2ms to 12ms]
☑️ Phase [start-push-payload] => [end-push-payload]
phase no difference [-13ms to 6ms]
☑️ Phase [end-push-payload] => [Test End]
phase no difference [-1ms to 2ms]

@runspired runspired merged commit 1ed3ee7 into master Aug 18, 2022
@delete-merged-branch delete-merged-branch bot deleted the runspired/relationship-cleanup branch August 18, 2022 06:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
🎯 canary PR is targeting canary (default) 🏷️ chore This PR primarily refactors code or updates dependencies
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant