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] Identifier relationships #6845

Closed
wants to merge 1 commit into from
Closed

Conversation

runspired
Copy link
Contributor

@runspired runspired commented Dec 3, 2019

Refactors the internals of our relationship layer to use identifiers and avoid RecordData while keeping the API 1:1. This will allow us to refactor the relationship layer more substantially more neatly.

The ultimate goal for Project Trim is to disentangle the relationship layer enough that we can disentangle more of the relationship fetch logic from the store more easily as well as simplify the path for landing Singleton RecordData.

The ultimate goal for the Relationship Refactor is to speed up the relationship layer. While this does provide a boost, we still spend close to 700ms in relationship setup codepaths that are unneeded on the performance benchmark.

@github-actions
Copy link

github-actions bot commented Dec 3, 2019

Asset Size Report for 63b4f0d

IE11 Builds

The size of the library EmberData has increased by 589.0 B (298.0 B compressed) which exceeds the failure threshold of 15 bytes.

Warnings

The uncompressed size of the package @ember-data/store has increased by 493.0 B.
The uncompressed size of the package @ember-data/record-data has increased by 96.0 B.

Changeset


EmberData 177.15 KB +589.0 B (36.01 KB +298.0 B compressed)
    @ember-data/store 77.86 KB +493.0 B (15.83 KB +249.43 B compressed)
        @ember-data/store/-private 76.94 KB +493.0 B (15.64 KB +249.43 B compressed)
    @ember-data/record-data 26.06 KB +96.0 B (5.3 KB +48.57 B compressed)
        @ember-data/record-data/-private 26.06 KB +96.0 B (5.3 KB +48.57 B compressed)

Full Asset Analysis (IE11)

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


Library: EmberData
┌────────────┬─────────────┐
│  (index)   │   Values    │
├────────────┼─────────────┤
│   bytes    │ '177.15 KB' │
│ compressed │ '36.01 KB'  │
│  packages  │      9      │
│  modules   │     47      │
└────────────┴─────────────┘

Package: @ember-data/store
┌──────────────┬────────────┐
│   (index)    │   Values   │
├──────────────┼────────────┤
│    bytes     │ '77.86 KB' │
│  compressed  │ '15.83 KB' │
│ % Of Library │   '43.9'   │
└──────────────┴────────────┘
	Module                                            | Bytes     | Compressed | % of Package  | % Of Library
	-----------------------------------------------------------------------------------------------------
	@ember-data/store/-private                        | 76.94 KB  | 15.64 KB   | 98.8          | 43.4
	@ember-data/store/index                           | 936.00 B  | 190.27 B   | 1.2           | 0.5

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

Package: @ember-data/serializer
┌──────────────┬────────────┐
│   (index)    │   Values   │
├──────────────┼────────────┤
│    bytes     │ '20.83 KB' │
│  compressed  │ '4.23 KB'  │
│ % Of Library │   '11.8'   │
└──────────────┴────────────┘
	Module                                            | Bytes     | Compressed | % of Package  | % Of Library
	-----------------------------------------------------------------------------------------------------
	@ember-data/serializer/json                       | 7.75 KB   | 1.57 KB    | 37.2          | 4.4
	@ember-data/serializer/-private                   | 5.68 KB   | 1.16 KB    | 27.3          | 3.2
	@ember-data/serializer/json-api                   | 3.95 KB   | 821.47 B   | 18.9          | 2.2
	@ember-data/serializer/rest                       | 2.99 KB   | 623.07 B   | 14.4          | 1.7
	@ember-data/serializer/index                      | 258.00 B  | 52.44 B    | 1.2           | 0.1
	@ember-data/serializer/transform                  | 215.00 B  | 43.70 B    | 1.0           | 0.1

Package: @ember-data/adapter
┌──────────────┬────────────┐
│   (index)    │   Values   │
├──────────────┼────────────┤
│    bytes     │ '15.45 KB' │
│  compressed  │ '3.14 KB'  │
│ % Of Library │   '8.7'    │
└──────────────┴────────────┘
	Module                                            | Bytes     | Compressed | % of Package  | % Of Library
	-----------------------------------------------------------------------------------------------------
	@ember-data/adapter/rest                          | 8.12 KB   | 1.65 KB    | 52.6          | 4.6
	@ember-data/adapter/-private                      | 3.73 KB   | 776.75 B   | 24.2          | 2.1
	@ember-data/adapter/error                         | 1.95 KB   | 405.35 B   | 12.6          | 1.1
	@ember-data/adapter/json-api                      | 882.00 B  | 179.29 B   | 5.6           | 0.5
	@ember-data/adapter/index                         | 804.00 B  | 163.44 B   | 5.1           | 0.4

Package: @ember-data/model
┌──────────────┬────────────┐
│   (index)    │   Values   │
├──────────────┼────────────┤
│    bytes     │ '14.35 KB' │
│  compressed  │ '2.92 KB'  │
│ % Of Library │   '8.1'    │
└──────────────┴────────────┘
	Module                                            | Bytes     | Compressed | % of Package  | % Of Library
	-----------------------------------------------------------------------------------------------------
	@ember-data/model/-private                        | 13.88 KB  | 2.82 KB    | 96.7          | 7.8
	@ember-data/model/index                           | 486.00 B  | 98.79 B    | 3.3           | 0.3

Package: ember-data
┌──────────────┬───────────┐
│   (index)    │  Values   │
├──────────────┼───────────┤
│    bytes     │ '9.89 KB' │
│  compressed  │ '2.01 KB' │
│ % Of Library │   '5.6'   │
└──────────────┴───────────┘
	Module                                            | Bytes     | Compressed | % of Package  | % Of Library
	-----------------------------------------------------------------------------------------------------
	ember-data/index                                  | 2.42 KB   | 503.94 B   | 24.5          | 1.4
	ember-data/-private                               | 1.98 KB   | 412.46 B   | 20.0          | 1.1
	ember-data/adapters/errors                        | 1.19 KB   | 247.39 B   | 12.0          | 0.7
	ember-data/store                                  | 585.00 B  | 118.92 B   | 5.8           | 0.3
	ember-data/setup-container                        | 503.00 B  | 102.25 B   | 5.0           | 0.3
	ember-data/relationships                          | 318.00 B  | 64.64 B    | 3.1           | 0.2
	ember-data/serializers/embedded-records-mixin     | 274.00 B  | 55.69 B    | 2.7           | 0.2
	ember-data/serializers/json-api                   | 251.00 B  | 51.02 B    | 2.5           | 0.1
	ember-data/adapters/json-api                      | 245.00 B  | 49.80 B    | 2.4           | 0.1
	ember-data/serializers/json                       | 243.00 B  | 49.39 B    | 2.4           | 0.1
	ember-data/serializers/rest                       | 243.00 B  | 49.39 B    | 2.4           | 0.1
	ember-data/transform                              | 241.00 B  | 48.99 B    | 2.4           | 0.1
	ember-data/adapters/rest                          | 237.00 B  | 48.17 B    | 2.3           | 0.1
	ember-data/serializer                             | 232.00 B  | 47.16 B    | 2.3           | 0.1
	ember-data/adapter                                | 226.00 B  | 45.94 B    | 2.2           | 0.1
	ember-data/model                                  | 222.00 B  | 45.12 B    | 2.2           | 0.1
	ember-data/attr                                   | 218.00 B  | 44.31 B    | 2.2           | 0.1
	ember-data/initialize-store-service               | 207.00 B  | 42.07 B    | 2.0           | 0.1
	ember-data/version                                | 162.00 B  | 32.93 B    | 1.6           | 0.1

Package: ember-inflector
┌──────────────┬───────────┐
│   (index)    │  Values   │
├──────────────┼───────────┤
│    bytes     │ '8.41 KB' │
│  compressed  │ '1.71 KB' │
│ % Of Library │   '4.7'   │
└──────────────┴───────────┘
	Module                                            | Bytes     | Compressed | % of Package  | % Of Library
	-----------------------------------------------------------------------------------------------------
	ember-inflector/lib/system/inflector              | 3.02 KB   | 627.74 B   | 35.9          | 1.7
	ember-inflector/lib/system/inflections            | 1.57 KB   | 327.28 B   | 18.7          | 0.9
	ember-inflector/index                             | 1.16 KB   | 241.29 B   | 13.8          | 0.7
	ember-inflector/lib/ext/string                    | 809.00 B  | 164.45 B   | 9.4           | 0.4
	ember-inflector/lib/helpers/pluralize             | 523.00 B  | 106.31 B   | 6.1           | 0.3
	ember-inflector/lib/system                        | 452.00 B  | 91.88 B    | 5.2           | 0.2
	ember-inflector/lib/system/string                 | 365.00 B  | 74.19 B    | 4.2           | 0.2
	ember-inflector/lib/utils/make-helper             | 308.00 B  | 62.61 B    | 3.6           | 0.2
	ember-inflector/lib/helpers/singularize           | 271.00 B  | 55.09 B    | 3.1           | 0.1

Package: @ember-data/debug
┌──────────────┬────────────┐
│   (index)    │   Values   │
├──────────────┼────────────┤
│    bytes     │ '2.96 KB'  │
│  compressed  │ '615.54 B' │
│ % Of Library │   '1.7'    │
└──────────────┴────────────┘
	Module                                            | Bytes     | Compressed | % of Package  | % Of Library
	-----------------------------------------------------------------------------------------------------
	@ember-data/debug/index                           | 2.47 KB   | 513.89 B   | 83.5          | 1.4
	@ember-data/debug/setup                           | 500.00 B  | 101.64 B   | 16.5          | 0.3

Package: @ember/ordered-set
┌──────────────┬────────────┐
│   (index)    │   Values   │
├──────────────┼────────────┤
│    bytes     │ '1.35 KB'  │
│  compressed  │ '280.12 B' │
│ % Of Library │   '0.8'    │
└──────────────┴────────────┘
	Module                                            | Bytes     | Compressed | % of Package  | % Of Library
	-----------------------------------------------------------------------------------------------------
	@ember/ordered-set/index                          | 1.35 KB   | 280.12 B   | 100.0         | 0.8

Modern Builds

The size of the library EmberData has increased by 441.0 B (220.0 B compressed) which exceeds the failure threshold of 15 bytes.

Warnings

The uncompressed size of the package @ember-data/store has increased by 442.0 B.

Changeset


EmberData 160.36 KB +441.0 B (34.43 KB +220.0 B compressed)
    @ember-data/store 68.73 KB +442.0 B (14.75 KB +220.5 B compressed)
        @ember-data/store/-private 67.81 KB +442.0 B (14.56 KB +220.5 B compressed)
    @ember-data/record-data 22.97 KB -1.0 B (4.93 KB -0.5 B compressed)
        @ember-data/record-data/-private 22.97 KB -1.0 B (4.93 KB -0.5 B compressed)

Full Asset Analysis (Modern)

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


Library: EmberData
┌────────────┬─────────────┐
│  (index)   │   Values    │
├────────────┼─────────────┤
│   bytes    │ '160.36 KB' │
│ compressed │ '34.43 KB'  │
│  packages  │      9      │
│  modules   │     47      │
└────────────┴─────────────┘

Package: @ember-data/store
┌──────────────┬────────────┐
│   (index)    │   Values   │
├──────────────┼────────────┤
│    bytes     │ '68.73 KB' │
│  compressed  │ '14.75 KB' │
│ % Of Library │   '42.9'   │
└──────────────┴────────────┘
	Module                                            | Bytes     | Compressed | % of Package  | % Of Library
	-----------------------------------------------------------------------------------------------------
	@ember-data/store/-private                        | 67.81 KB  | 14.56 KB   | 98.7          | 42.3
	@ember-data/store/index                           | 936.00 B  | 200.94 B   | 1.3           | 0.6

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

Package: @ember-data/serializer
┌──────────────┬────────────┐
│   (index)    │   Values   │
├──────────────┼────────────┤
│    bytes     │ '19.32 KB' │
│  compressed  │ '4.15 KB'  │
│ % Of Library │   '12.1'   │
└──────────────┴────────────┘
	Module                                            | Bytes     | Compressed | % of Package  | % Of Library
	-----------------------------------------------------------------------------------------------------
	@ember-data/serializer/json                       | 7.10 KB   | 1.52 KB    | 36.8          | 4.4
	@ember-data/serializer/-private                   | 5.36 KB   | 1.15 KB    | 27.8          | 3.3
	@ember-data/serializer/json-api                   | 3.71 KB   | 814.94 B   | 19.2          | 2.3
	@ember-data/serializer/rest                       | 2.70 KB   | 594.24 B   | 14.0          | 1.7
	@ember-data/serializer/index                      | 243.00 B  | 52.16 B    | 1.2           | 0.1
	@ember-data/serializer/transform                  | 215.00 B  | 46.15 B    | 1.1           | 0.1

Package: @ember-data/adapter
┌──────────────┬────────────┐
│   (index)    │   Values   │
├──────────────┼────────────┤
│    bytes     │ '14.73 KB' │
│  compressed  │ '3.16 KB'  │
│ % Of Library │   '9.2'    │
└──────────────┴────────────┘
	Module                                            | Bytes     | Compressed | % of Package  | % Of Library
	-----------------------------------------------------------------------------------------------------
	@ember-data/adapter/rest                          | 7.76 KB   | 1.67 KB    | 52.7          | 4.8
	@ember-data/adapter/-private                      | 3.54 KB   | 778.22 B   | 24.0          | 2.2
	@ember-data/adapter/error                         | 1.91 KB   | 420.56 B   | 13.0          | 1.2
	@ember-data/adapter/json-api                      | 830.00 B  | 178.18 B   | 5.5           | 0.5
	@ember-data/adapter/index                         | 719.00 B  | 154.35 B   | 4.8           | 0.4

Package: @ember-data/model
┌──────────────┬────────────┐
│   (index)    │   Values   │
├──────────────┼────────────┤
│    bytes     │ '13.25 KB' │
│  compressed  │ '2.84 KB'  │
│ % Of Library │   '8.3'    │
└──────────────┴────────────┘
	Module                                            | Bytes     | Compressed | % of Package  | % Of Library
	-----------------------------------------------------------------------------------------------------
	@ember-data/model/-private                        | 12.77 KB  | 2.74 KB    | 96.4          | 8.0
	@ember-data/model/index                           | 486.00 B  | 104.33 B   | 3.6           | 0.3

Package: ember-data
┌──────────────┬───────────┐
│   (index)    │  Values   │
├──────────────┼───────────┤
│    bytes     │ '9.72 KB' │
│  compressed  │ '2.09 KB' │
│ % Of Library │   '6.1'   │
└──────────────┴───────────┘
	Module                                            | Bytes     | Compressed | % of Package  | % Of Library
	-----------------------------------------------------------------------------------------------------
	ember-data/index                                  | 2.42 KB   | 532.20 B   | 24.9          | 1.5
	ember-data/-private                               | 1.98 KB   | 435.59 B   | 20.4          | 1.2
	ember-data/adapters/errors                        | 1.19 KB   | 261.27 B   | 12.2          | 0.7
	ember-data/setup-container                        | 503.00 B  | 107.98 B   | 5.1           | 0.3
	ember-data/store                                  | 406.00 B  | 87.16 B    | 4.1           | 0.2
	ember-data/relationships                          | 318.00 B  | 68.26 B    | 3.2           | 0.2
	ember-data/serializers/embedded-records-mixin     | 274.00 B  | 58.82 B    | 2.8           | 0.2
	ember-data/serializers/json-api                   | 251.00 B  | 53.88 B    | 2.5           | 0.2
	ember-data/adapters/json-api                      | 245.00 B  | 52.59 B    | 2.5           | 0.1
	ember-data/serializers/json                       | 243.00 B  | 52.16 B    | 2.4           | 0.1
	ember-data/serializers/rest                       | 243.00 B  | 52.16 B    | 2.4           | 0.1
	ember-data/transform                              | 241.00 B  | 51.73 B    | 2.4           | 0.1
	ember-data/adapters/rest                          | 237.00 B  | 50.88 B    | 2.4           | 0.1
	ember-data/serializer                             | 232.00 B  | 49.80 B    | 2.3           | 0.1
	ember-data/adapter                                | 226.00 B  | 48.51 B    | 2.3           | 0.1
	ember-data/model                                  | 222.00 B  | 47.65 B    | 2.2           | 0.1
	ember-data/attr                                   | 218.00 B  | 46.80 B    | 2.2           | 0.1
	ember-data/initialize-store-service               | 207.00 B  | 44.43 B    | 2.1           | 0.1
	ember-data/version                                | 162.00 B  | 34.77 B    | 1.6           | 0.1

Package: ember-inflector
┌──────────────┬───────────┐
│   (index)    │  Values   │
├──────────────┼───────────┤
│    bytes     │ '7.90 KB' │
│  compressed  │ '1.70 KB' │
│ % Of Library │   '4.9'   │
└──────────────┴───────────┘
	Module                                            | Bytes     | Compressed | % of Package  | % Of Library
	-----------------------------------------------------------------------------------------------------
	ember-inflector/lib/system/inflector              | 2.76 KB   | 606.05 B   | 34.9          | 1.7
	ember-inflector/lib/system/inflections            | 1.57 KB   | 345.64 B   | 19.9          | 1.0
	ember-inflector/index                             | 1.12 KB   | 246.45 B   | 14.2          | 0.7
	ember-inflector/lib/ext/string                    | 783.00 B  | 168.09 B   | 9.7           | 0.5
	ember-inflector/lib/system                        | 452.00 B  | 97.03 B    | 5.6           | 0.3
	ember-inflector/lib/system/string                 | 351.00 B  | 75.35 B    | 4.3           | 0.2
	ember-inflector/lib/helpers/pluralize             | 348.00 B  | 74.70 B    | 4.3           | 0.2
	ember-inflector/lib/utils/make-helper             | 308.00 B  | 66.12 B    | 3.8           | 0.2
	ember-inflector/lib/helpers/singularize           | 271.00 B  | 58.17 B    | 3.3           | 0.2

Package: @ember-data/debug
┌──────────────┬────────────┐
│   (index)    │   Values   │
├──────────────┼────────────┤
│    bytes     │ '2.68 KB'  │
│  compressed  │ '588.87 B' │
│ % Of Library │   '1.7'    │
└──────────────┴────────────┘
	Module                                            | Bytes     | Compressed | % of Package  | % Of Library
	-----------------------------------------------------------------------------------------------------
	@ember-data/debug/index                           | 2.19 KB   | 481.74 B   | 81.8          | 1.4
	@ember-data/debug/setup                           | 499.00 B  | 107.12 B   | 18.2          | 0.3

Package: @ember/ordered-set
┌──────────────┬────────────┐
│   (index)    │   Values   │
├──────────────┼────────────┤
│    bytes     │ '1.05 KB'  │
│  compressed  │ '231.42 B' │
│ % Of Library │   '0.7'    │
└──────────────┴────────────┘
	Module                                            | Bytes     | Compressed | % of Package  | % Of Library
	-----------------------------------------------------------------------------------------------------
	@ember/ordered-set/index                          | 1.05 KB   | 231.42 B   | 100.0         | 0.7

Modern Builds (No Rollup)

The size of the library EmberData has increased by 1.55 KB (344.0 B compressed) which exceeds the failure threshold of 15 bytes.

Warnings

The uncompressed size of the package @ember-data/store has increased by 482.0 B.
The uncompressed size of the package @ember-data/record-data has increased by 1.08 KB.

Changeset


EmberData 204.85 KB +1.55 KB (38.83 KB +344.0 B compressed)
    @ember-data/store 99.99 KB +482.0 B (18.95 KB +104.61 B compressed)
        @ember-data/store/-private/system/core-store 17.12 KB +64.0 B (3.24 KB +13.89 B compressed)
        @ember-data/store/-private/system/model/internal-model 16.92 KB +43.0 B (3.21 KB +9.33 B compressed)
        @ember-data/store/-private/system/store/record-data-store-wrapper 3.59 KB +163.0 B (696.34 B +35.38 B compressed)
        @ember-data/store/-private/system/snapshot 2.97 KB +167.0 B (576.36 B +36.24 B compressed)
        @ember-data/store/-private/system/references/has-many 1.37 KB -3.0 B (266.67 B -0.65 B compressed)
        @ember-data/store/-private/system/references/belongs-to 1.11 KB -41.0 B (214.55 B -8.9 B compressed)
        @ember-data/store/-private/system/backburner 264.0 B -4.0 B (50.03 B -0.87 B compressed)
        @ember-data/store/-private/system/record-data-for 328.0 B +93.0 B (62.16 B +20.18 B compressed)
    @ember-data/record-data 27.55 KB +1.08 KB (5.22 KB +239.39 B compressed)
        @ember-data/record-data/-private/relationships/state/relationship 8.03 KB -282.0 B (1.52 KB -61.2 B compressed)
        @ember-data/record-data/-private/record-data 7.8 KB -109.0 B (1.48 KB -23.66 B compressed)
        @ember-data/record-data/-private/relationships/state/has-many 3.06 KB -240.0 B (593.42 B -52.09 B compressed)
        @ember-data/record-data/-private/relationships/state/belongs-to 3.03 KB -197.0 B (587.16 B -42.76 B compressed)
        @ember-data/record-data/-private/relationships/state/create 1.01 KB -147.0 B (195.4 B -31.9 B compressed)
        @ember-data/record-data/-private/index 1.26 KB +269.0 B (244.87 B +58.38 B compressed)
        @ember-data/record-data/-private/record-data-for 724.0 B +243.0 B (137.22 B +52.74 B compressed)
        @ember-data/record-data/-private/relationships/state/graph 1.53 KB +1.53 KB (296.8 B +339.88 B compressed)

Full Asset Analysis (Modern)

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


Library: EmberData
┌────────────┬─────────────┐
│  (index)   │   Values    │
├────────────┼─────────────┤
│   bytes    │ '204.85 KB' │
│ compressed │ '38.83 KB'  │
│  packages  │      9      │
│  modules   │     146     │
└────────────┴─────────────┘

Package: @ember-data/store
┌──────────────┬────────────┐
│   (index)    │   Values   │
├──────────────┼────────────┤
│    bytes     │ '99.99 KB' │
│  compressed  │ '18.95 KB' │
│ % Of Library │   '48.8'   │
└──────────────┴────────────┘
	Module                                                                             | Bytes     | Compressed | % of Package  | % Of Library
	--------------------------------------------------------------------------------------------------------------------------------------
	@ember-data/store/-private/system/core-store                                       | 17.12 KB  | 3.24 KB    | 17.1          | 8.4
	@ember-data/store/-private/system/model/internal-model                             | 16.92 KB  | 3.21 KB    | 16.9          | 8.3
	@ember-data/store/-private/system/model/states                                     | 5.44 KB   | 1.03 KB    | 5.4           | 2.7
	@ember-data/store/-private/system/fetch-manager                                    | 4.94 KB   | 959.03 B   | 4.9           | 2.4
	@ember-data/store/-private/system/store/finders                                    | 4.32 KB   | 838.11 B   | 4.3           | 2.1
	@ember-data/store/-private/index                                                   | 4.23 KB   | 820.29 B   | 4.2           | 2.1
	@ember-data/store/-private/system/store/record-data-store-wrapper                  | 3.59 KB   | 696.34 B   | 3.6           | 1.8
	@ember-data/store/-private/system/record-array-manager                             | 3.58 KB   | 695.77 B   | 3.6           | 1.8
	@ember-data/store/-private/identifiers/cache                                       | 3.54 KB   | 687.24 B   | 3.5           | 1.7
	@ember-data/store/-private/system/snapshot                                         | 2.97 KB   | 576.36 B   | 3.0           | 1.4
	@ember-data/store/-private/system/store/internal-model-factory                     | 2.81 KB   | 546.23 B   | 2.8           | 1.4
	@ember-data/store/-private/system/record-arrays/record-array                       | 2.04 KB   | 394.98 B   | 2.0           | 1.0
	@ember-data/store/-private/system/ds-model-store                                   | 1.99 KB   | 385.50 B   | 2.0           | 1.0
	@ember-data/store/-private/system/request-cache                                    | 1.89 KB   | 367.50 B   | 1.9           | 0.9
	@ember-data/store/-private/system/schema-definition-service                        | 1.47 KB   | 285.62 B   | 1.5           | 0.7
	@ember-data/store/-private/system/relationship-meta                                | 1.47 KB   | 285.43 B   | 1.5           | 0.7
	@ember-data/store/-private/system/references/has-many                              | 1.37 KB   | 266.67 B   | 1.4           | 0.7
	@ember-data/store/-private/system/model/shim-model-class                           | 1.26 KB   | 244.49 B   | 1.3           | 0.6
	@ember-data/store/-private/system/store/serializer-response                        | 1.12 KB   | 218.15 B   | 1.1           | 0.5
	@ember-data/store/-private/system/references/belongs-to                            | 1.11 KB   | 214.55 B   | 1.1           | 0.5
	@ember-data/store/-private/identifiers/utils/uuid-v4                               | 1.05 KB   | 204.31 B   | 1.1           | 0.5
	@ember-data/store/index                                                            | 936.00 B  | 177.40 B   | 0.9           | 0.4
	@ember-data/store/-private/system/internal-model-map                               | 916.00 B  | 173.61 B   | 0.9           | 0.4
	@ember-data/store/-private/system/model/notify-changes                             | 862.00 B  | 163.37 B   | 0.8           | 0.4
	@ember-data/store/-private/system/record-arrays/adapter-populated-record-array     | 855.00 B  | 162.04 B   | 0.8           | 0.4
	@ember-data/store/-private/system/references/record                                | 782.00 B  | 148.21 B   | 0.8           | 0.4
	@ember-data/store/-private/system/snapshot-record-array                            | 768.00 B  | 145.56 B   | 0.8           | 0.4
	@ember-data/store/-private/system/errors-utils                                     | 760.00 B  | 144.04 B   | 0.7           | 0.4
	@ember-data/store/-private/system/record-notification-manager                      | 689.00 B  | 130.58 B   | 0.7           | 0.3
	@ember-data/store/-private/system/references/reference                             | 686.00 B  | 130.01 B   | 0.7           | 0.3
	@ember-data/store/-private/system/references                                       | 598.00 B  | 113.34 B   | 0.6           | 0.3
	@ember-data/store/-private/system/promise-proxies                                  | 556.00 B  | 105.37 B   | 0.5           | 0.3
	@ember-data/store/-private/utils/construct-resource                                | 506.00 B  | 95.90 B    | 0.5           | 0.2
	@ember-data/store/-private/system/store/common                                     | 499.00 B  | 94.57 B    | 0.5           | 0.2
	@ember-data/store/-private/system/record-arrays                                    | 487.00 B  | 92.30 B    | 0.5           | 0.2
	@ember-data/store/-private/system/identity-map                                     | 450.00 B  | 85.28 B    | 0.4           | 0.2
	@ember-data/store/-private/system/diff-array                                       | 438.00 B  | 83.01 B    | 0.4           | 0.2
	@ember-data/store/-private/ts-interfaces/identifier                                | 414.00 B  | 78.46 B    | 0.4           | 0.2
	@ember-data/store/-private/system/coerce-id                                        | 407.00 B  | 77.13 B    | 0.4           | 0.2
	@ember-data/store/-private/ts-interfaces/utils/symbol                              | 407.00 B  | 77.13 B    | 0.4           | 0.2
	@ember-data/store/-private/system/record-data-for                                  | 328.00 B  | 62.16 B    | 0.3           | 0.2
	@ember-data/store/-private/identifiers/is-stable-identifier                        | 327.00 B  | 61.97 B    | 0.3           | 0.2
	@ember-data/store/-private/ts-interfaces/fetch-manager                             | 316.00 B  | 59.89 B    | 0.3           | 0.2
	@ember-data/store/-private/utils/promise-record                                    | 288.00 B  | 54.58 B    | 0.3           | 0.1
	@ember-data/store/-private/ts-interfaces/utils/brand                               | 286.00 B  | 54.20 B    | 0.3           | 0.1
	@ember-data/store/-private/system/backburner                                       | 264.00 B  | 50.03 B    | 0.3           | 0.1
	@ember-data/store/-private/system/ts-upgrade-map                                   | 248.00 B  | 47.00 B    | 0.2           | 0.1
	@ember-data/store/-private/utils/is-non-empty-string                               | 212.00 B  | 40.18 B    | 0.2           | 0.1
	@ember-data/store/-private/system/normalize-model-name                             | 210.00 B  | 39.80 B    | 0.2           | 0.1
	@ember-data/store/-debug/index                                                     | 193.00 B  | 36.57 B    | 0.2           | 0.1
	@ember-data/store/-private/system/deprecated-evented                               | 190.00 B  | 36.01 B    | 0.2           | 0.1
	@ember-data/store/-private/ts-interfaces/record-data-store-wrapper                 | 150.00 B  | 28.42 B    | 0.1           | 0.1
	@ember-data/store/-private/ts-interfaces/record-data-schemas                       | 144.00 B  | 27.29 B    | 0.1           | 0.1
	@ember-data/store/-private/ts-interfaces/minimum-serializer-interface              | 98.00 B   | 18.57 B    | 0.1           | 0.0
	@ember-data/store/-private/ts-interfaces/record-data-record-wrapper                | 96.00 B   | 18.19 B    | 0.1           | 0.0
	@ember-data/store/-private/ts-interfaces/minimum-adapter-interface                 | 95.00 B   | 18.00 B    | 0.1           | 0.0
	@ember-data/store/-private/ts-interfaces/schema-definition-service                 | 95.00 B   | 18.00 B    | 0.1           | 0.0
	@ember-data/store/-private/ts-interfaces/record-data-json-api                      | 90.00 B   | 17.05 B    | 0.1           | 0.0
	@ember-data/store/-private/ts-interfaces/ember-data-json-api                       | 89.00 B   | 16.86 B    | 0.1           | 0.0
	@ember-data/store/-private/ts-interfaces/promise-proxies                           | 85.00 B   | 16.11 B    | 0.1           | 0.0
	@ember-data/store/-private/ts-interfaces/record-instance                           | 85.00 B   | 16.11 B    | 0.1           | 0.0
	@ember-data/store/-private/ts-interfaces/record-data                               | 81.00 B   | 15.35 B    | 0.1           | 0.0
	@ember-data/store/-private/ts-interfaces/ds-model                                  | 78.00 B   | 14.78 B    | 0.1           | 0.0
	@ember-data/store/-private/ts-interfaces/utils                                     | 75.00 B   | 14.21 B    | 0.1           | 0.0

Package: @ember-data/record-data
┌──────────────┬────────────┐
│   (index)    │   Values   │
├──────────────┼────────────┤
│    bytes     │ '27.55 KB' │
│  compressed  │ '5.22 KB'  │
│ % Of Library │   '13.5'   │
└──────────────┴────────────┘
	Module                                                                      | Bytes     | Compressed | % of Package  | % Of Library
	-------------------------------------------------------------------------------------------------------------------------------
	@ember-data/record-data/-private/relationships/state/relationship           | 8.03 KB   | 1.52 KB    | 29.1          | 3.9
	@ember-data/record-data/-private/record-data                                | 7.80 KB   | 1.48 KB    | 28.3          | 3.8
	@ember-data/record-data/-private/relationships/state/has-many               | 3.06 KB   | 593.42 B   | 11.1          | 1.5
	@ember-data/record-data/-private/relationships/state/belongs-to             | 3.03 KB   | 587.16 B   | 11.0          | 1.5
	@ember-data/record-data/-private/relationships/state/graph                  | 1.53 KB   | 296.80 B   | 5.6           | 0.7
	@ember-data/record-data/-private/index                                      | 1.26 KB   | 244.87 B   | 4.6           | 0.6
	@ember-data/record-data/-private/relationships/state/create                 | 1.01 KB   | 195.40 B   | 3.7           | 0.5
	@ember-data/record-data/-private/record-data-for                            | 724.00 B  | 137.22 B   | 2.6           | 0.3
	@ember-data/record-data/-private/ordered-set                                | 407.00 B  | 77.13 B    | 1.4           | 0.2
	@ember-data/record-data/-private/coerce-id                                  | 406.00 B  | 76.94 B    | 1.4           | 0.2
	@ember-data/record-data/-private/normalize-link                             | 249.00 B  | 47.19 B    | 0.9           | 0.1
	@ember-data/record-data/-private/ts-interfaces/relationship-record-data     | 100.00 B  | 18.95 B    | 0.4           | 0.0

Package: @ember-data/serializer
┌──────────────┬────────────┐
│   (index)    │   Values   │
├──────────────┼────────────┤
│    bytes     │ '21.71 KB' │
│  compressed  │ '4.11 KB'  │
│ % Of Library │   '10.6'   │
└──────────────┴────────────┘
	Module                                                     | Bytes     | Compressed | % of Package  | % Of Library
	--------------------------------------------------------------------------------------------------------------
	@ember-data/serializer/json                                | 7.10 KB   | 1.35 KB    | 32.7          | 3.5
	@ember-data/serializer/-private/embedded-records-mixin     | 4.29 KB   | 831.85 B   | 19.7          | 2.1
	@ember-data/serializer/json-api                            | 3.71 KB   | 719.46 B   | 17.1          | 1.8
	@ember-data/serializer/rest                                | 2.70 KB   | 524.62 B   | 12.5          | 1.3
	@ember-data/serializer/-private/index                      | 1.18 KB   | 229.33 B   | 5.4           | 0.6
	@ember-data/serializer/-private/transforms/date            | 523.00 B  | 99.12 B    | 2.4           | 0.2
	@ember-data/serializer/-private/transforms/boolean         | 490.00 B  | 92.87 B    | 2.2           | 0.2
	@ember-data/serializer/-private/transforms/number          | 446.00 B  | 84.53 B    | 2.0           | 0.2
	@ember-data/serializer/-private/transforms/string          | 351.00 B  | 66.52 B    | 1.6           | 0.2
	@ember-data/serializer/-private/utils                      | 286.00 B  | 54.20 B    | 1.3           | 0.1
	@ember-data/serializer/index                               | 243.00 B  | 46.05 B    | 1.1           | 0.1
	@ember-data/serializer/-private/transforms/transform       | 242.00 B  | 45.86 B    | 1.1           | 0.1
	@ember-data/serializer/transform                           | 215.00 B  | 40.74 B    | 1.0           | 0.1

Package: @ember-data/model
┌──────────────┬────────────┐
│   (index)    │   Values   │
├──────────────┼────────────┤
│    bytes     │ '17.21 KB' │
│  compressed  │ '3.26 KB'  │
│ % Of Library │   '8.4'    │
└──────────────┴────────────┘
	Module                                                   | Bytes     | Compressed | % of Package  | % Of Library
	------------------------------------------------------------------------------------------------------------
	@ember-data/model/-private/model                         | 6.28 KB   | 1.19 KB    | 36.5          | 3.1
	@ember-data/model/-private/system/many-array             | 2.24 KB   | 434.59 B   | 13.0          | 1.1
	@ember-data/model/-private/errors                        | 1.92 KB   | 372.99 B   | 11.2          | 0.9
	@ember-data/model/-private/index                         | 1.29 KB   | 250.37 B   | 7.5           | 0.6
	@ember-data/model/-private/system/relationships/ext      | 1.19 KB   | 230.28 B   | 6.9           | 0.6
	@ember-data/model/-private/attr                          | 743.00 B  | 140.82 B   | 4.2           | 0.4
	@ember-data/model/-private/belongs-to                    | 663.00 B  | 125.65 B   | 3.8           | 0.3
	@ember-data/model/-private/has-many                      | 626.00 B  | 118.64 B   | 3.6           | 0.3
	@ember-data/model/-private/system/promise-many-array     | 611.00 B  | 115.80 B   | 3.5           | 0.3
	@ember-data/model/index                                  | 486.00 B  | 92.11 B    | 2.8           | 0.2
	@ember-data/model/-private/util                          | 443.00 B  | 83.96 B    | 2.5           | 0.2
	@ember-data/model/-private/system/promise-belongs-to     | 410.00 B  | 77.70 B    | 2.3           | 0.2
	@ember-data/model/-private/system/model-for-mixin        | 408.00 B  | 77.32 B    | 2.3           | 0.2

Package: @ember-data/adapter
┌──────────────┬────────────┐
│   (index)    │   Values   │
├──────────────┼────────────┤
│    bytes     │ '16.77 KB' │
│  compressed  │ '3.18 KB'  │
│ % Of Library │   '8.2'    │
└──────────────┴────────────┘
	Module                                                        | Bytes     | Compressed | % of Package  | % Of Library
	-----------------------------------------------------------------------------------------------------------------
	@ember-data/adapter/rest                                      | 7.76 KB   | 1.47 KB    | 46.3          | 3.8
	@ember-data/adapter/error                                     | 1.91 KB   | 371.29 B   | 11.4          | 0.9
	@ember-data/adapter/-private/build-url-mixin                  | 1.80 KB   | 350.06 B   | 10.8          | 0.9
	@ember-data/adapter/-private/index                            | 1.03 KB   | 200.14 B   | 6.1           | 0.5
	@ember-data/adapter/json-api                                  | 830.00 B  | 157.31 B   | 4.8           | 0.4
	@ember-data/adapter/-private/utils/serialize-query-params     | 792.00 B  | 150.10 B   | 4.6           | 0.4
	@ember-data/adapter/index                                     | 719.00 B  | 136.27 B   | 4.2           | 0.3
	@ember-data/adapter/-private/utils/determine-body-promise     | 523.00 B  | 99.12 B    | 3.0           | 0.2
	@ember-data/adapter/-private/utils/parse-response-headers     | 480.00 B  | 90.97 B    | 2.8           | 0.2
	@ember-data/adapter/-private/utils/fetch                      | 454.00 B  | 86.04 B    | 2.6           | 0.2
	@ember-data/adapter/-private/utils/serialize-into-hash        | 347.00 B  | 65.76 B    | 2.0           | 0.2
	@ember-data/adapter/-private/utils/continue-on-reject         | 217.00 B  | 41.12 B    | 1.3           | 0.1

Package: ember-data
┌──────────────┬───────────┐
│   (index)    │  Values   │
├──────────────┼───────────┤
│    bytes     │ '9.98 KB' │
│  compressed  │ '1.89 KB' │
│ % Of Library │   '4.9'   │
└──────────────┴───────────┘
	Module                                            | Bytes     | Compressed | % of Package  | % Of Library
	-----------------------------------------------------------------------------------------------------
	ember-data/index                                  | 2.42 KB   | 469.84 B   | 24.3          | 1.2
	ember-data/-private/index                         | 1.93 KB   | 374.13 B   | 19.3          | 0.9
	ember-data/adapters/errors                        | 1.19 KB   | 230.65 B   | 11.9          | 0.6
	ember-data/setup-container                        | 503.00 B  | 95.33 B    | 4.9           | 0.2
	ember-data/store                                  | 406.00 B  | 76.94 B    | 4.0           | 0.2
	ember-data/-private/core                          | 321.00 B  | 60.83 B    | 3.1           | 0.2
	ember-data/relationships                          | 318.00 B  | 60.27 B    | 3.1           | 0.2
	ember-data/serializers/embedded-records-mixin     | 274.00 B  | 51.93 B    | 2.7           | 0.1
	ember-data/serializers/json-api                   | 251.00 B  | 47.57 B    | 2.5           | 0.1
	ember-data/adapters/json-api                      | 245.00 B  | 46.43 B    | 2.4           | 0.1
	ember-data/serializers/json                       | 243.00 B  | 46.05 B    | 2.4           | 0.1
	ember-data/serializers/rest                       | 243.00 B  | 46.05 B    | 2.4           | 0.1
	ember-data/transform                              | 241.00 B  | 45.67 B    | 2.4           | 0.1
	ember-data/adapters/rest                          | 237.00 B  | 44.91 B    | 2.3           | 0.1
	ember-data/serializer                             | 232.00 B  | 43.97 B    | 2.3           | 0.1
	ember-data/adapter                                | 226.00 B  | 42.83 B    | 2.2           | 0.1
	ember-data/model                                  | 222.00 B  | 42.07 B    | 2.2           | 0.1
	ember-data/attr                                   | 218.00 B  | 41.31 B    | 2.1           | 0.1
	ember-data/initialize-store-service               | 207.00 B  | 39.23 B    | 2.0           | 0.1
	ember-data/version                                | 162.00 B  | 30.70 B    | 1.6           | 0.1

Package: ember-inflector
┌──────────────┬───────────┐
│   (index)    │  Values   │
├──────────────┼───────────┤
│    bytes     │ '7.90 KB' │
│  compressed  │ '1.50 KB' │
│ % Of Library │   '3.9'   │
└──────────────┴───────────┘
	Module                                            | Bytes     | Compressed | % of Package  | % Of Library
	-----------------------------------------------------------------------------------------------------
	ember-inflector/lib/system/inflector              | 2.76 KB   | 535.04 B   | 34.9          | 1.3
	ember-inflector/lib/system/inflections            | 1.57 KB   | 305.14 B   | 19.9          | 0.8
	ember-inflector/index                             | 1.12 KB   | 217.58 B   | 14.2          | 0.5
	ember-inflector/lib/ext/string                    | 783.00 B  | 148.40 B   | 9.7           | 0.4
	ember-inflector/lib/system                        | 452.00 B  | 85.66 B    | 5.6           | 0.2
	ember-inflector/lib/system/string                 | 351.00 B  | 66.52 B    | 4.3           | 0.2
	ember-inflector/lib/helpers/pluralize             | 348.00 B  | 65.95 B    | 4.3           | 0.2
	ember-inflector/lib/utils/make-helper             | 308.00 B  | 58.37 B    | 3.8           | 0.1
	ember-inflector/lib/helpers/singularize           | 271.00 B  | 51.36 B    | 3.3           | 0.1

Package: @ember-data/debug
┌──────────────┬────────────┐
│   (index)    │   Values   │
├──────────────┼────────────┤
│    bytes     │ '2.68 KB'  │
│  compressed  │ '519.88 B' │
│ % Of Library │   '1.3'    │
└──────────────┴────────────┘
	Module                                            | Bytes     | Compressed | % of Package  | % Of Library
	-----------------------------------------------------------------------------------------------------
	@ember-data/debug/index                           | 2.19 KB   | 425.30 B   | 81.8          | 1.1
	@ember-data/debug/setup                           | 499.00 B  | 94.57 B    | 18.2          | 0.2

Package: @ember/ordered-set
┌──────────────┬────────────┐
│   (index)    │   Values   │
├──────────────┼────────────┤
│    bytes     │ '1.05 KB'  │
│  compressed  │ '204.31 B' │
│ % Of Library │   '0.5'    │
└──────────────┴────────────┘
	Module                                            | Bytes     | Compressed | % of Package  | % Of Library
	-----------------------------------------------------------------------------------------------------
	@ember/ordered-set/index                          | 1.05 KB   | 204.31 B   | 100.0         | 0.5

@github-actions
Copy link

github-actions bot commented Dec 3, 2019

Performance Report for 63b4f0d

Relationship Analysis
                        -------------

__/\\\\\\\\\\\\\____/\\\\____________/\\\\____/\\\\\\\\\_____
 _\/\\\/////////\\\_\/\\\\\\________/\\\\\\__/\\\///////\\\___
  _\/\\\_______\/\\\_\/\\\//\\\____/\\\//\\\_\///______\//\\\__
   _\/\\\\\\\\\\\\\/__\/\\\\///\\\/\\\/_\/\\\___________/\\\/___
    _\/\\\/////////____\/\\\__\///\\\/___\/\\\________/\\\//_____
     _\/\\\_____________\/\\\____\///_____\/\\\_____/\\\//________
      _\/\\\_____________\/\\\_____________\/\\\___/\\\/___________
       _\/\\\_____________\/\\\_____________\/\\\__/\\\\\\\\\\\\\\\_
        _\///______________\///______________\///__\///////////////__


                          Runtime Edition

        PM2 is a Production Process Manager for Node.js applications
                     with a built-in Load Balancer.

                Start and Daemonize any application:
                $ pm2 start app.js

                Load Balance 4 instances of api.js:
                $ pm2 start api.js -i 4

                Monitor in production:
                $ pm2 monitor

                Make pm2 auto-boot at server restart:
                $ pm2 startup

                To go further checkout:
                http://pm2.io/


                        -------------

[PM2] Spawning PM2 daemon with pm2_home=/home/runner/.pm2
[PM2] PM2 Successfully daemonized
[PM2] Starting /home/runner/work/data/data/bin/relationship-performance-tracking/src/har-remix.js in fork_mode (1 instance)
[PM2] Done.
┌─────┬────────────┬─────────────┬─────────┬─────────┬──────────┬────────┬──────┬───────────┬──────────┬──────────┬──────────┬──────────┐
│ id  │ name       │ namespace   │ version │ mode    │ pid      │ uptime │ ↺    │ status    │ cpu      │ mem      │ user     │ watching │
├─────┼────────────┼─────────────┼─────────┼─────────┼──────────┼────────┼──────┼───────────┼──────────┼──────────┼──────────┼──────────┤
│ 0   │ control    │ default     │ N/A     │ fork    │ 3058     │ 0s     │ 0    │ online    │ 0%       │ 33.2mb   │ runner   │ disabled │
└─────┴────────────┴─────────────┴─────────┴─────────┴──────────┴────────┴──────┴───────────┴──────────┴──────────┴──────────┴──────────┘
[PM2] Starting /home/runner/work/data/data/bin/relationship-performance-tracking/src/har-remix.js in fork_mode (1 instance)
[PM2] Done.
┌─────┬───────────────┬─────────────┬─────────┬─────────┬──────────┬────────┬──────┬───────────┬──────────┬──────────┬──────────┬──────────┐
│ id  │ name          │ namespace   │ version │ mode    │ pid      │ uptime │ ↺    │ status    │ cpu      │ mem      │ user     │ watching │
├─────┼───────────────┼─────────────┼─────────┼─────────┼──────────┼────────┼──────┼───────────┼──────────┼──────────┼──────────┼──────────┤
│ 0   │ control       │ default     │ N/A     │ fork    │ 3058     │ 0s     │ 0    │ online    │ 0%       │ 69.1mb   │ runner   │ disabled │
│ 1   │ experiment    │ default     │ N/A     │ fork    │ 3082     │ 0s     │ 0    │ online    │ 0%       │ 27.2mb   │ runner   │ disabled │
└─────┴───────────────┴─────────────┴─────────┴─────────┴──────────┴────────┴──────┴───────────┴──────────┴──────────┴──────────┴──────────┘
Computing results...


┌───────────────────────────────────────────────────────────────────────┐
│ Initial Render : duration                                             │
├────────────────────────────────────────┬──────────────────────────────┤
│                                        │ Control: 60                  │
│ Sample Counts:                         ├──────────────────────────────┤
│                                        │ Experiment: 60               │
├────────────────────────────────────────┴──────────────────────────────┤
│                                                                       │
├────────────────────────────────────────┬──────────────────────────────┤
│                                        │ MIN: 1643ms                  │
│                                        ├──────────────────────────────┤
│                                        │ MAX: 1849ms                  │
│                                        ├──────────────────────────────┤
│                                        │ 10th: 1693ms                 │
│                                        ├──────────────────────────────┤
│ Control Seven Figure Summary:          │ 25th: 1704ms                 │
│                                        ├──────────────────────────────┤
│                                        │ 50th: 1724ms                 │
│                                        ├──────────────────────────────┤
│                                        │ 75th: 1742ms                 │
│                                        ├──────────────────────────────┤
│                                        │ 90th: 1776ms                 │
├────────────────────────────────────────┴──────────────────────────────┤
│                                                                       │
├────────────────────────────────────────┬──────────────────────────────┤
│                                        │ MIN: 1275ms                  │
│                                        ├──────────────────────────────┤
│                                        │ MAX: 1477ms                  │
│                                        ├──────────────────────────────┤
│                                        │ 10th: 1313ms                 │
│                                        ├──────────────────────────────┤
│ Experiment Seven Figure Summary:       │ 25th: 1329ms                 │
│                                        ├──────────────────────────────┤
│                                        │ 50th: 1344ms                 │
│                                        ├──────────────────────────────┤
│                                        │ 75th: 1360ms                 │
│                                        ├──────────────────────────────┤
│                                        │ 90th: 1386ms                 │
├────────────────────────────────────────┴──────────────────────────────┤
│                                                                       │
├────────────────────────────────────────┬──────────────────────────────┤
│ Hodges–Lehmann estimated delta:        │ -380ms                       │
├────────────────────────────────────────┴──────────────────────────────┤
│                                                                       │
├────────────────────────────────────────┬──────────────────────────────┤
│ 95% confident the delta is between:    │ -390ms to -369ms             │
├────────────────────────────────────────┴──────────────────────────────┤
│                                                                       │
├────────────────────────────────────────┬──────────────────────────────┤
│ Is Significant:                        │ true                         │
├────────────────────────────────────────┴──────────────────────────────┤
│                                                                       │
├────────────────────────────────────────┬──────────────────────────────┤
│ Control Sparkline                      │ ▁▁▁▁▁▁▁▁▂█▂▁                 │
├────────────────────────────────────────┼──────────────────────────────┤
│ Experiment Sparkline                   │ ▁█▅▁▁▁▁▁▁▁▁▁                 │
└────────────────────────────────────────┴──────────────────────────────┘


┌───────────────────────────────────────────────────────────────────────┐
│ Sub Phase of Duration : start-find-all                                │
├────────────────────────────────────────┬──────────────────────────────┤
│                                        │ Control: 60                  │
│ Sample Counts:                         ├──────────────────────────────┤
│                                        │ Experiment: 60               │
├────────────────────────────────────────┴──────────────────────────────┤
│                                                                       │
├────────────────────────────────────────┬──────────────────────────────┤
│                                        │ MIN: 1173ms                  │
│                                        ├──────────────────────────────┤
│                                        │ MAX: 1349ms                  │
│                                        ├──────────────────────────────┤
│                                        │ 10th: 1201ms                 │
│                                        ├──────────────────────────────┤
│ Control Seven Figure Summary:          │ 25th: 1217ms                 │
│                                        ├──────────────────────────────┤
│                                        │ 50th: 1228ms                 │
│                                        ├──────────────────────────────┤
│                                        │ 75th: 1245ms                 │
│                                        ├──────────────────────────────┤
│                                        │ 90th: 1285ms                 │
├────────────────────────────────────────┴──────────────────────────────┤
│                                                                       │
├────────────────────────────────────────┬──────────────────────────────┤
│                                        │ MIN: 805ms                   │
│                                        ├──────────────────────────────┤
│                                        │ MAX: 978ms                   │
│                                        ├──────────────────────────────┤
│                                        │ 10th: 836ms                  │
│                                        ├──────────────────────────────┤
│ Experiment Seven Figure Summary:       │ 25th: 846ms                  │
│                                        ├──────────────────────────────┤
│                                        │ 50th: 858ms                  │
│                                        ├──────────────────────────────┤
│                                        │ 75th: 871ms                  │
│                                        ├──────────────────────────────┤
│                                        │ 90th: 882ms                  │
├────────────────────────────────────────┴──────────────────────────────┤
│                                                                       │
├────────────────────────────────────────┬──────────────────────────────┤
│ Hodges–Lehmann estimated delta:        │ -372ms                       │
├────────────────────────────────────────┴──────────────────────────────┤
│                                                                       │
├────────────────────────────────────────┬──────────────────────────────┤
│ 95% confident the delta is between:    │ -380ms to -363ms             │
├────────────────────────────────────────┴──────────────────────────────┤
│                                                                       │
├────────────────────────────────────────┬──────────────────────────────┤
│ Is Significant:                        │ true                         │
├────────────────────────────────────────┴──────────────────────────────┤
│                                                                       │
├────────────────────────────────────────┬──────────────────────────────┤
│ Control Sparkline                      │ ▁▁▁▁▁▁▁▂█▂▁                  │
├────────────────────────────────────────┼──────────────────────────────┤
│ Experiment Sparkline                   │ ▄█▁▁▁▁▁▁▁▁▁                  │
├────────────────────────────────────────┴──────────────────────────────┤
│ Sub Phase of Duration : start-outer-materialization                   │
├────────────────────────────────────────┬──────────────────────────────┤
│                                        │ Control: 60                  │
│ Sample Counts:                         ├──────────────────────────────┤
│                                        │ Experiment: 60               │
├────────────────────────────────────────┴──────────────────────────────┤
│                                                                       │
├────────────────────────────────────────┬──────────────────────────────┤
│                                        │ MIN: 426ms                   │
│                                        ├──────────────────────────────┤
│                                        │ MAX: 496ms                   │
│                                        ├──────────────────────────────┤
│                                        │ 10th: 451ms                  │
│                                        ├──────────────────────────────┤
│ Control Seven Figure Summary:          │ 25th: 460ms                  │
│                                        ├──────────────────────────────┤
│                                        │ 50th: 472ms                  │
│                                        ├──────────────────────────────┤
│                                        │ 75th: 481ms                  │
│                                        ├──────────────────────────────┤
│                                        │ 90th: 487ms                  │
├────────────────────────────────────────┴──────────────────────────────┤
│                                                                       │
├────────────────────────────────────────┬──────────────────────────────┤
│                                        │ MIN: 439ms                   │
│                                        ├──────────────────────────────┤
│                                        │ MAX: 501ms                   │
│                                        ├──────────────────────────────┤
│                                        │ 10th: 447ms                  │
│                                        ├──────────────────────────────┤
│ Experiment Seven Figure Summary:       │ 25th: 456ms                  │
│                                        ├──────────────────────────────┤
│                                        │ 50th: 464ms                  │
│                                        ├──────────────────────────────┤
│                                        │ 75th: 474ms                  │
│                                        ├──────────────────────────────┤
│                                        │ 90th: 485ms                  │
├────────────────────────────────────────┴──────────────────────────────┤
│                                                                       │
├────────────────────────────────────────┬──────────────────────────────┤
│ Hodges–Lehmann estimated delta:        │ -6ms                         │
├────────────────────────────────────────┴──────────────────────────────┤
│                                                                       │
├────────────────────────────────────────┬──────────────────────────────┤
│ 95% confident the delta is between:    │ -12ms to -1ms                │
├────────────────────────────────────────┴──────────────────────────────┤
│                                                                       │
├────────────────────────────────────────┬──────────────────────────────┤
│ Is Significant:                        │ true                         │
├────────────────────────────────────────┴──────────────────────────────┤
│                                                                       │
├────────────────────────────────────────┬──────────────────────────────┤
│ Control Sparkline                      │ ▁▁▃▄▅█▅▃▁                    │
├────────────────────────────────────────┼──────────────────────────────┤
│ Experiment Sparkline                   │ ▁▁▃▄█▄▃▁▁                    │
├────────────────────────────────────────┴──────────────────────────────┤
│ Sub Phase of Duration : stop-outer-materialization                    │
├────────────────────────────────────────┬──────────────────────────────┤
│                                        │ Control: 60                  │
│ Sample Counts:                         ├──────────────────────────────┤
│                                        │ Experiment: 60               │
├────────────────────────────────────────┴──────────────────────────────┤
│                                                                       │
├────────────────────────────────────────┬──────────────────────────────┤
│                                        │ MIN: 0ms                     │
│                                        ├──────────────────────────────┤
│                                        │ MAX: 0ms                     │
│                                        ├──────────────────────────────┤
│                                        │ 10th: 0ms                    │
│                                        ├──────────────────────────────┤
│ Control Seven Figure Summary:          │ 25th: 0ms                    │
│                                        ├──────────────────────────────┤
│                                        │ 50th: 0ms                    │
│                                        ├──────────────────────────────┤
│                                        │ 75th: 0ms                    │
│                                        ├──────────────────────────────┤
│                                        │ 90th: 0ms                    │
├────────────────────────────────────────┴──────────────────────────────┤
│                                                                       │
├────────────────────────────────────────┬──────────────────────────────┤
│                                        │ MIN: 0ms                     │
│                                        ├──────────────────────────────┤
│                                        │ MAX: 0ms                     │
│                                        ├──────────────────────────────┤
│                                        │ 10th: 0ms                    │
│                                        ├──────────────────────────────┤
│ Experiment Seven Figure Summary:       │ 25th: 0ms                    │
│                                        ├──────────────────────────────┤
│                                        │ 50th: 0ms                    │
│                                        ├──────────────────────────────┤
│                                        │ 75th: 0ms                    │
│                                        ├──────────────────────────────┤
│                                        │ 90th: 0ms                    │
├────────────────────────────────────────┴──────────────────────────────┤
│                                                                       │
├────────────────────────────────────────┬──────────────────────────────┤
│ Hodges–Lehmann estimated delta:        │ 0ms                          │
├────────────────────────────────────────┴──────────────────────────────┤
│                                                                       │
├────────────────────────────────────────┬──────────────────────────────┤
│ 95% confident the delta is between:    │ 0ms to 0ms                   │
├────────────────────────────────────────┴──────────────────────────────┤
│                                                                       │
├────────────────────────────────────────┬──────────────────────────────┤
│ Is Significant:                        │ true                         │
├────────────────────────────────────────┴──────────────────────────────┤
│                                                                       │
├────────────────────────────────────────┬──────────────────────────────┤
│ Control Sparkline                      │ █▂▁▁▁▁▁▁▁▁                   │
├────────────────────────────────────────┼──────────────────────────────┤
│ Experiment Sparkline                   │ █▁▁▁▁▁▁▁▁▁                   │
├────────────────────────────────────────┴──────────────────────────────┤
│ Sub Phase of Duration : end-find-all                                  │
├────────────────────────────────────────┬──────────────────────────────┤
│                                        │ Control: 60                  │
│ Sample Counts:                         ├──────────────────────────────┤
│                                        │ Experiment: 60               │
├────────────────────────────────────────┴──────────────────────────────┤
│                                                                       │
├────────────────────────────────────────┬──────────────────────────────┤
│                                        │ MIN: 20ms                    │
│                                        ├──────────────────────────────┤
│                                        │ MAX: 25ms                    │
│                                        ├──────────────────────────────┤
│                                        │ 10th: 20ms                   │
│                                        ├──────────────────────────────┤
│ Control Seven Figure Summary:          │ 25th: 21ms                   │
│                                        ├──────────────────────────────┤
│                                        │ 50th: 21ms                   │
│                                        ├──────────────────────────────┤
│                                        │ 75th: 22ms                   │
│                                        ├──────────────────────────────┤
│                                        │ 90th: 23ms                   │
├────────────────────────────────────────┴──────────────────────────────┤
│                                                                       │
├────────────────────────────────────────┬──────────────────────────────┤
│                                        │ MIN: 20ms                    │
│                                        ├──────────────────────────────┤
│                                        │ MAX: 32ms                    │
│                                        ├──────────────────────────────┤
│                                        │ 10th: 20ms                   │
│                                        ├──────────────────────────────┤
│ Experiment Seven Figure Summary:       │ 25th: 20ms                   │
│                                        ├──────────────────────────────┤
│                                        │ 50th: 21ms                   │
│                                        ├──────────────────────────────┤
│                                        │ 75th: 22ms                   │
│                                        ├──────────────────────────────┤
│                                        │ 90th: 23ms                   │
├────────────────────────────────────────┴──────────────────────────────┤
│                                                                       │
├────────────────────────────────────────┬──────────────────────────────┤
│ Hodges–Lehmann estimated delta:        │ 0ms                          │
├────────────────────────────────────────┴──────────────────────────────┤
│                                                                       │
├────────────────────────────────────────┬──────────────────────────────┤
│ 95% confident the delta is between:    │ 0ms to 0ms                   │
├────────────────────────────────────────┴──────────────────────────────┤
│                                                                       │
├────────────────────────────────────────┬──────────────────────────────┤
│ Is Significant:                        │ false                        │
├────────────────────────────────────────┴──────────────────────────────┤
│                                                                       │
├────────────────────────────────────────┬──────────────────────────────┤
│ Control Sparkline                      │ █▄▁▃▁▁▁▁▁▁▁▁▁                │
├────────────────────────────────────────┼──────────────────────────────┤
│ Experiment Sparkline                   │ █▂▁▂▁▁▁▁▁▁▁▁▁                │
└────────────────────────────────────────┴──────────────────────────────┘

    =========== Benchmark Results Summary ===========    
Red color means there was a regression. Green color means there was an improvement. You can view more statistical details about the phases above.

duration phase has an estimated difference of -380ms. 

start-find-all phase has an estimated difference of -372ms. 

start-outer-materialization phase has an estimated difference of -6ms. 

stop-outer-materialization phase has no difference. 

end-find-all phase has no difference. 

[PM2] [v] Modules Stopped
[PM2] Applying action deleteProcessId on app [all](ids: [ 0, 1 ])
[PM2] [control](0) ✓
[PM2] [experiment](1) ✓
[PM2] [v] All Applications Stopped
[PM2] [v] PM2 Daemon Stopped

@runspired runspired force-pushed the identifier-relationships branch from 5cbb521 to 86c6450 Compare December 3, 2019 20:13
@runspired runspired added 🏷️ chore This PR primarily refactors code or updates dependencies Relationship Refactor 🌲 Project Trim 🌲 PRs related to https://github.com/emberjs/data/issues/6166 labels Dec 3, 2019
Copy link
Member

@igorT igorT left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Flushing wip comments

@@ -237,21 +232,18 @@ export default class ManyRelationship extends Relationship {
return payload;
}

updateData(data, initial) {
let recordDatas: RelationshipRecordData[] | undefined;
updateData(data) {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What happened to initial

@@ -154,45 +161,35 @@ export default class ManyRelationship extends Relationship {
this.notifyHasManyChange();
}

computeChanges(recordDatas: RelationshipRecordData[] = []) {
computeChanges(identifiers: StableRecordIdentifier[] = []) {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Note to self, this method changed

this.key = relationshipMeta.key || null;
this.storeWrapper = storeWrapper;
this.store = storeWrapper._store;
this.key = relationshipMeta.key || '--implicit';
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Possible collisions, check other checks for key


export default DS.JSONAPISerializer.extend({
normalizeResponse(store, primaryModelClass, payload) {
export default class Serializer {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍

@@ -38,7 +40,9 @@ export interface RecordDataStoreWrapper {
notifyHasManyChange(modelName: string, id: string, clientId: string | null | undefined, key: string): void;
notifyHasManyChange(modelName: string, id: string | null, clientId: string | null | undefined, key: string): void;

recordDataFor(modelName: string, id: string, clientId?: string): unknown;
recordDataFor(modelName: string, id: string, clientId?: null | string): RecordData | RelationshipRecordData;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think returning RecordData is the correct signature here. RelationshipRecordData implements RecordData and it could also be something else that implements RecordData

@@ -1,5 +1,7 @@
import { RelationshipsSchema, AttributesSchema } from './record-data-schemas';
import { BRAND_SYMBOL } from './utils/brand';
import { RecordData } from './record-data';
import { RelationshipRecordData } from '@ember-data/record-data/-private/ts-interfaces/relationship-record-data';
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we do the .default import here?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yeah this predates that work, I'll rebase it and run the lint fix

@@ -26,10 +24,9 @@ export interface RelationshipRecordData extends RecordData {
id: string | null;
clientId: string | null;
isEmpty(): boolean;
identifier: StableRecordIdentifier;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How does this compare to the getter?

@@ -16,14 +19,28 @@ interface InternalModel {
_recordData: RecordData;
}

const IdentifierCache = new WeakMap<StableRecordIdentifier, RecordData>();

export function setRecordDataFor(identifier: StableRecordIdentifier, recordData: RecordData) {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we say identifier in this method name somewhere please, especially as recordDataFor has multiple signatures

if (!identifier.id) {
return true;
}
const recordData = peekRecordData(identifier);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we leave a comment here as to the logic/sideeffect this uses, a couple tests to confirm the behavior might also be great but wouldn't want to block but at least file an issue please

}

export class Graph {
_queued: { belongsTo: any[]; hasMany: any[] } = { belongsTo: [], hasMany: [] };
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Probably shouldn't be anys

}

unload(identifier: StableRecordIdentifier) {
const relationships = this.identifiers.get(identifier);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Const

backburner.join(() => {
// TODO this join seems to only be necessary for
// some older style tests (causes 7 failures if removed)
backburner.schedule('flushRelationships', this, this.flush);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Lets name this pushRelationshipPayloads

@@ -44,7 +43,7 @@ export default class RecordDataDefault implements RelationshipRecordData {
_scheduledDestroy: any;
_isDeleted: boolean;
_isDeletionCommited: boolean;
private identifier: RecordIdentifier;
public identifier: RecordIdentifier;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This should probably be private

// relationship of the dematerialization: this is done so the relationship can
// notify its inverse which needs to update state
//
// If the inverse is sync, unloading this record is treated as a client-side
Copy link
Member

@igorT igorT Dec 12, 2019

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please move this comment to the right place

@runspired
Copy link
Contributor Author

Completed in #7470

@runspired runspired closed this Apr 23, 2021
@runspired runspired deleted the identifier-relationships branch April 23, 2021 20:31
@runspired runspired added this to the Public Graph API milestone Sep 11, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
🏷️ chore This PR primarily refactors code or updates dependencies 🌲 Project Trim 🌲 PRs related to https://github.com/emberjs/data/issues/6166
Projects
Status: Discarded
Development

Successfully merging this pull request may close these issues.

2 participants