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

perf: eliminate private backburner #8139

Merged
merged 3 commits into from
Aug 22, 2022
Merged

Conversation

runspired
Copy link
Contributor

Ports the runloop optimization from #8134 so that we can keep the benchmark of that PR pure for the cost of proxies.

@runspired runspired added 🎯 canary PR is targeting canary (default) 🏷️ perf PRs that improve performance in a notable way labels Aug 21, 2022
@github-actions
Copy link

github-actions bot commented Aug 21, 2022

Asset Size Report for 6c60473

Modern Builds

☑️ EmberData shrank by -81.0 B but the compressed size increased slighty (+31.0 B compressed)

Warnings

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

Changeset


EmberData +168.73 KB -81.0 B (+35.35 KB +31.0 B compressed)
    @ember-data/store +46.81 KB -64.0 B (+9.81 KB +24.49 B compressed)
        @ember-data/store/-private +45.81 KB -64.0 B (+9.6 KB +24.49 B compressed)
    @ember-data/model +45.33 KB -23.0 B (+9.5 KB +8.8 B compressed)
        @ember-data/model/-private +44.86 KB -23.0 B (+9.4 KB +8.8 B compressed)
    @ember-data/record-data +22.25 KB +6.0 B (+4.66 KB -2.3 B compressed)
        @ember-data/record-data/-private +22.25 KB +6.0 B (+4.66 KB -2.3 B compressed)

Full Asset Analysis (Modern)

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


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

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

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

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

Package: @ember-data/serializer
┌──────────────┬────────────┐
│   (index)    │   Values   │
├──────────────┼────────────┤
│    bytes     │ '20.42 KB' │
│  compressed  │ '4.28 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   | 813.14 B   | 18.6          | 2.2
	@ember-data/serializer/rest                       | 2.87 KB   | 614.72 B   | 14.0          | 1.7
	@ember-data/serializer/index                      | 611.00 B  | 128.01 B   | 2.9           | 0.4
	@ember-data/serializer/transform                  | 215.00 B  | 45.04 B    | 1.0           | 0.1

Package: @ember-data/adapter
┌──────────────┬────────────┐
│   (index)    │   Values   │
├──────────────┼────────────┤
│    bytes     │ '15.93 KB' │
│  compressed  │ '3.34 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   | 812.09 B   | 23.8          | 2.2
	@ember-data/adapter/error                         | 1.82 KB   | 390.96 B   | 11.4          | 1.1
	@ember-data/adapter/index                         | 1.41 KB   | 302.96 B   | 8.9           | 0.8
	@ember-data/adapter/json-api                      | 1.03 KB   | 221.87 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   | 445.43 B   | 24.3          | 1.2
	ember-data/-private                               | 1.67 KB   | 358.27 B   | 19.5          | 1.0
	ember-data/adapters/errors                        | 1.19 KB   | 254.98 B   | 13.9          | 0.7
	ember-data/setup-container                        | 368.00 B  | 77.10 B    | 4.2           | 0.2
	ember-data/relationships                          | 318.00 B  | 66.62 B    | 3.6           | 0.2
	ember-data/serializers/embedded-records-mixin     | 274.00 B  | 57.40 B    | 3.1           | 0.2
	ember-data/serializers/json-api                   | 251.00 B  | 52.58 B    | 2.9           | 0.1
	ember-data/adapters/json-api                      | 245.00 B  | 51.33 B    | 2.8           | 0.1
	ember-data/serializers/json                       | 243.00 B  | 50.91 B    | 2.8           | 0.1
	ember-data/serializers/rest                       | 243.00 B  | 50.91 B    | 2.8           | 0.1
	ember-data/transform                              | 241.00 B  | 50.49 B    | 2.8           | 0.1
	ember-data/adapters/rest                          | 237.00 B  | 49.65 B    | 2.7           | 0.1
	ember-data/serializer                             | 232.00 B  | 48.60 B    | 2.7           | 0.1
	ember-data/adapter                                | 226.00 B  | 47.35 B    | 2.6           | 0.1
	ember-data/model                                  | 222.00 B  | 46.51 B    | 2.5           | 0.1
	ember-data/store                                  | 222.00 B  | 46.51 B    | 2.5           | 0.1
	ember-data/attr                                   | 218.00 B  | 45.67 B    | 2.5           | 0.1
	ember-data/version                                | 161.00 B  | 33.73 B    | 1.8           | 0.1

Package: ember-inflector
┌──────────────┬───────────┐
│   (index)    │  Values   │
├──────────────┼───────────┤
│    bytes     │ '6.67 KB' │
│  compressed  │ '1.40 KB' │
│ % Of Library │   '4.0'   │
└──────────────┴───────────┘
	Module                                            | Bytes     | Compressed | % of Package  | % Of Library
	-----------------------------------------------------------------------------------------------------
	ember-inflector/lib/system/inflector              | 2.96 KB   | 635.67 B   | 44.4          | 1.8
	ember-inflector/lib/system/inflections            | 1.59 KB   | 340.88 B   | 23.8          | 0.9
	ember-inflector/lib/system                        | 471.00 B  | 98.68 B    | 6.9           | 0.3
	ember-inflector/index                             | 379.00 B  | 79.40 B    | 5.6           | 0.2
	ember-inflector/lib/helpers/pluralize             | 369.00 B  | 77.31 B    | 5.4           | 0.2
	ember-inflector/lib/utils/make-helper             | 332.00 B  | 69.55 B    | 4.9           | 0.2
	ember-inflector/lib/system/string                 | 318.00 B  | 66.62 B    | 4.7           | 0.2
	ember-inflector/lib/helpers/singularize           | 296.00 B  | 62.01 B    | 4.3           | 0.2

Package: @ember-data/debug
┌──────────────┬────────────┐
│   (index)    │   Values   │
├──────────────┼────────────┤
│    bytes     │ '2.77 KB'  │
│  compressed  │ '593.56 B' │
│ % Of Library │   '1.6'    │
└──────────────┴────────────┘
	Module                                            | Bytes     | Compressed | % of Package  | % Of Library
	-----------------------------------------------------------------------------------------------------
	@ember-data/debug/index                           | 2.27 KB   | 487.75 B   | 82.2          | 1.3
	@ember-data/debug/setup                           | 505.00 B  | 105.80 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 22, 2022

Performance Report for 6c60473

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

☑️ duration
phase no difference [-5ms to 64ms]
☑️ Phase [navigationStart] => [start-data-generation]
phase no difference [-2ms to 5ms]
☑️ Phase [start-data-generation] => [start-push-payload]
phase no difference [-3ms to 3ms]
☑️ Phase [start-push-payload] => [start-peek-records]
phase no difference [-11ms to 25ms]
☑️ Phase [start-peek-records] => [start-record-materialization]
phase no difference [-1ms to 1ms]
⚠️ Phase [start-record-materialization] => [end-record-materialization]
phase estimated regression +15ms [5ms to 25ms] OR +1.35% [0.45% to 2.26%]
⚠️ Phase [end-record-materialization] => [Test End]
phase estimated regression +1ms [0ms to 1ms] OR +1.45% [0.16% to 2.64%]

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

☑️ duration
phase no difference [-15ms to 8ms]
☑️ Phase [navigationStart] => [start-find-all]
phase no difference [-2ms to 5ms]
✅ Phase [start-find-all] => [start-materialization]
phase estimated improvement -8ms [-13ms to -3ms] OR -1.71% [-2.79% to -0.68%]
☑️ Phase [start-materialization] => [end-materialization]
phase no difference [0ms to 9ms]
☑️ Phase [end-materialization] => [Test End]
phase no difference [0ms to 0ms]

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

☑️ duration
phase no difference [-52ms to 43ms]
☑️ Phase [navigationStart] => [start-data-generation]
phase no difference [-3ms to 4ms]
☑️ Phase [start-data-generation] => [start-push-payload]
phase no difference [-3ms to 1ms]
✅ Phase [start-push-payload] => [start-peek-records]
phase estimated improvement -12ms [-23ms to -2ms] OR -0.96% [-1.88% to -0.14%]
☑️ Phase [start-peek-records] => [start-record-materialization]
phase no difference [0ms to 1ms]
☑️ Phase [start-record-materialization] => [start-relationship-materialization]
phase no difference [-11ms to 1ms]
☑️ Phase [start-relationship-materialization] => [end-relationship-materialization]
phase no difference [-6ms to 69ms]
✅ Phase [end-relationship-materialization] => [Test End]
phase estimated improvement -5ms [-10ms to -1ms] OR -0.9% [-1.79% to -0.15%]

Scenario - unload: ☑️ Performance is stable

☑️ duration
phase no difference [-15ms to 6ms]
☑️ Phase [navigationStart] => [start-push-payload]
phase no difference [-5ms to 4ms]
☑️ Phase [start-push-payload] => [start-unload-records]
phase no difference [-5ms to 7ms]
✅ Phase [start-unload-records] => [end-unload-records]
phase estimated improvement -5ms [-7ms to -3ms] OR -2.09% [-2.9% to -1.27%]
☑️ Phase [end-unload-records] => [Test End]
phase no difference [0ms to 0ms]

Scenario - unload-all: ✅ Performance improved

✅ duration
phase estimated improvement -61ms [-80ms to -40ms] OR -1.75% [-2.29% to -1.15%]
☑️ Phase [navigationStart] => [start-push-payload]
phase no difference [-3ms to 7ms]
☑️ Phase [start-push-payload] => [start-materialization]
phase no difference [-3ms to 18ms]
✅ Phase [start-materialization] => [start-unload-all]
phase estimated improvement -8ms [-14ms to -1ms] OR -1.14% [-2.04% to -0.19%]
✅ Phase [start-unload-all] => [end-unload-all]
phase estimated improvement -62ms [-67ms to -57ms] OR -11.66% [-12.6% to -10.76%]
☑️ Phase [end-unload-all] => [Test End]
phase no difference [-1ms to 0ms]

Scenario - destroy: ☑️ Performance is stable

☑️ duration
phase no difference [-17ms to 12ms]
☑️ Phase [navigationStart] => [start-push-payload]
phase no difference [-4ms to 6ms]
☑️ Phase [start-push-payload] => [start-destroy-records]
phase no difference [-4ms to 11ms]
✅ Phase [start-destroy-records] => [end-destroy-records]
phase estimated improvement -6ms [-9ms to -3ms] OR -3.11% [-4.49% to -1.63%]
☑️ Phase [end-destroy-records] => [Test End]
phase no difference [0ms to 0ms]

Scenario - add-children: ☑️ Performance is stable

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

Scenario - unused-relationships: ☑️ Performance is stable

☑️ duration
phase no difference [-13ms to 11ms]
☑️ Phase [navigationStart] => [start-push-payload]
phase no difference [-4ms to 5ms]
☑️ Phase [start-push-payload] => [end-push-payload]
phase no difference [-8ms to 4ms]
☑️ Phase [end-push-payload] => [Test End]
phase no difference [0ms to 0ms]

@runspired runspired merged commit b280ac3 into master Aug 22, 2022
@delete-merged-branch delete-merged-branch bot deleted the runspired/port-optimizations branch August 22, 2022 01:29
@runspired runspired mentioned this pull request Aug 22, 2022
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) 🏷️ perf PRs that improve performance in a notable way
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant