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

More dramatic update for update-with-same-state perf test #9743

Merged
merged 5 commits into from
Mar 6, 2025

Conversation

gitKrystan
Copy link
Contributor

Description

Notes for the release

@gitKrystan gitKrystan changed the title More dramatic update More dramatic update for update-with-same-state perf test Mar 5, 2025
@gitKrystan gitKrystan added 🎯 canary PR is targeting canary (default) 🏷️ perf PRs that improve performance in a notable way ci-perf Activates Performance Checks in CI labels Mar 5, 2025
Copy link

github-actions bot commented Mar 5, 2025

Performance Report for 585f677

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

☑️ duration
phase no difference [-5ms to 7ms]
☑️ Phase [navigationStart] => [start-data-generation]
phase no difference [0ms to 0ms]
⚠️ Phase [start-data-generation] => [start-push-payload]
phase estimated regression +1ms [0ms to 2ms] OR +0.56% [0.1% to 0.97%]
☑️ Phase [start-push-payload] => [start-peek-records]
phase no difference [-2ms to 7ms]
☑️ Phase [start-peek-records] => [start-record-materialization]
phase no difference [0ms to 0ms]
☑️ Phase [start-record-materialization] => [end-record-materialization]
phase no difference [-7ms to 0ms]
⚠️ Phase [end-record-materialization] => [Test End]
phase estimated regression +1ms [0ms to 1ms] OR +2.47% [1.43% to 3.35%]

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

☑️ duration
phase no difference [-1ms to 3ms]
⚠️ Phase [navigationStart] => [start-data-generation]
phase estimated regression +1ms [0ms to 1ms] OR +0.86% [0.07% to 1.69%]
✅ Phase [start-data-generation] => [start-push-payload]
phase estimated improvement -1ms [-1ms to 0ms] OR -0.62% [-1.1% to -0.11%]
☑️ Phase [start-push-payload] => [start-peek-records]
phase no difference [-1ms to 2ms]
☑️ Phase [start-peek-records] => [start-record-materialization]
phase no difference [0ms to 0ms]
☑️ Phase [start-record-materialization] => [end-record-materialization]
phase no difference [-1ms to 0ms]
⚠️ Phase [end-record-materialization] => [Test End]
phase estimated regression +1ms [0ms to 1ms] OR +2.09% [0.79% to 3.2%]

Scenario - complex-record-materialization-with-relationship-materialization: ⚠️ Performance regressed

⚠️ duration
phase estimated regression +4ms [1ms to 7ms] OR +1.03% [0.25% to 1.85%]
☑️ Phase [navigationStart] => [start-data-generation]
phase no difference [0ms to 1ms]
☑️ Phase [start-data-generation] => [start-push-payload]
phase no difference [-1ms to 0ms]
⚠️ Phase [start-push-payload] => [start-peek-records]
phase estimated regression +2ms [0ms to 3ms] OR +1% [0.01% to 2.17%]
☑️ Phase [start-peek-records] => [start-record-materialization]
phase no difference [0ms to 0ms]
⚠️ Phase [start-record-materialization] => [start-field-access]
phase estimated regression +1ms [0ms to 1ms] OR +1.9% [0.49% to 3.76%]
☑️ Phase [start-field-access] => [start-relationship-access]
phase no difference [-1ms to 0ms]
☑️ Phase [start-relationship-access] => [end-relationship-access]
phase no difference [0ms to 1ms]
☑️ Phase [end-relationship-access] => [Test End]
phase no difference [0ms to 1ms]

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

☑️ duration
phase no difference [0ms to 6ms]
☑️ Phase [navigationStart] => [start-find-all]
phase no difference [-1ms to 0ms]
☑️ Phase [start-find-all] => [start-materialization]
phase no difference [-2ms to 1ms]
⚠️ Phase [start-materialization] => [end-materialization]
phase estimated regression +3ms [1ms to 5ms] OR +1.58% [0.7% to 2.44%]
⚠️ Phase [end-materialization] => [Test End]
phase estimated regression +1ms [0ms to 1ms] OR +2.29% [1.2% to 3.36%]

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

☑️ duration
phase no difference [-13ms to 12ms]
☑️ Phase [navigationStart] => [start-data-generation]
phase no difference [0ms to 1ms]
☑️ Phase [start-data-generation] => [start-push-payload]
phase no difference [-1ms to 1ms]
☑️ Phase [start-push-payload] => [start-peek-records]
phase no difference [-6ms to 1ms]
☑️ Phase [start-peek-records] => [start-record-materialization]
phase no difference [0ms to 0ms]
☑️ Phase [start-record-materialization] => [start-relationship-materialization]
phase no difference [-1ms to 2ms]
☑️ Phase [start-relationship-materialization] => [start-push-payload2]
phase no difference [-14ms to 2ms]
☑️ Phase [start-push-payload2] => [start-relationship-materialization2]
phase no difference [-1ms to 4ms]
☑️ Phase [start-relationship-materialization2] => [end-relationship-materialization2]
phase no difference [-1ms to 2ms]
⚠️ Phase [end-relationship-materialization2] => [Test End]
phase estimated regression +2ms [0ms to 3ms] OR +1.05% [0.29% to 1.76%]

Scenario - unload: ☑️ Performance is stable

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

Scenario - unload-all: ☑️ Performance is stable

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

Scenario - destroy: ☑️ Performance is stable

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

Scenario - add-children: ☑️ Performance is stable

☑️ duration
phase no difference [-1ms to 4ms]
☑️ Phase [navigationStart] => [start-push-initial-payload]
phase no difference [-1ms to 0ms]
☑️ Phase [start-push-initial-payload] => [start-push-update-payload]
phase no difference [-1ms to 2ms]
☑️ Phase [start-push-update-payload] => [end-push-update-payload]
phase no difference [-1ms to 2ms]
⚠️ Phase [end-push-update-payload] => [Test End]
phase estimated regression +1ms [0ms to 1ms] OR +2.23% [1.2% to 3.42%]

Scenario - unused-relationships: ☑️ Performance is stable

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

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

✅ duration
phase estimated improvement -160ms [-165ms to -155ms] OR -12.55% [-12.98% to -12.17%]
☑️ Phase [navigationStart] => [start-data-generation]
phase no difference [0ms to 1ms]
✅ Phase [start-data-generation] => [start-push-initial-payload]
phase estimated improvement -62ms [-63ms to -62ms] OR -35.25% [-35.48% to -35.04%]
☑️ Phase [start-push-initial-payload] => [start-peek-records]
phase no difference [-1ms to 2ms]
☑️ Phase [start-peek-records] => [start-record-materialization]
phase no difference [0ms to 0ms]
⚠️ Phase [start-record-materialization] => [start-relationship-materialization]
phase estimated regression +9ms [6ms to 16ms] OR +17.23% [11.15% to 31.06%]
✅ Phase [start-relationship-materialization] => [start-local-removal]
phase estimated improvement -387ms [-392ms to -382ms] OR -54.58% [-55.29% to -53.87%]
⚠️ Phase [start-local-removal] => [start-push-minus-one-payload]
phase estimated regression +290ms [289ms to 292ms] OR +21924.82% [21841.25% to 22076.84%]
✅ Phase [start-push-minus-one-payload] => [start-local-addition]
phase estimated improvement -72ms [-73ms to -71ms] OR -85.6% [-86.75% to -84.69%]
⚠️ Phase [start-local-addition] => [start-push-plus-one-payload]
phase estimated regression +38ms [37ms to 39ms] OR +1043.56% [1034.03% to 1076.69%]
⚠️ Phase [start-push-plus-one-payload] => [end-push-plus-one-payload]
phase estimated regression +18ms [17ms to 19ms] OR +30.92% [28.64% to 32.82%]
⚠️ Phase [end-push-plus-one-payload] => [Test End]
phase estimated regression +4ms [2ms to 5ms] OR +14.18% [7.87% to 19.93%]

@gitKrystan gitKrystan force-pushed the update-with-same-state-part-2 branch from df3dda3 to 8f5f844 Compare March 5, 2025 01:35
@gitKrystan gitKrystan force-pushed the update-with-same-state-part-2 branch from c357769 to f31d148 Compare March 5, 2025 18:37
@gitKrystan gitKrystan force-pushed the update-with-same-state-part-2 branch from f31d148 to 585f677 Compare March 6, 2025 19:01
@runspired runspired merged commit 0a18a2c into main Mar 6, 2025
21 of 22 checks passed
@runspired runspired deleted the update-with-same-state-part-2 branch March 6, 2025 19:39
gitKrystan added a commit that referenced this pull request Mar 8, 2025
* More dramatic update

* Iterate parent of each child

* Add big many to many scenario

* Tidy up

* Enbiggen
gitKrystan added a commit that referenced this pull request Mar 9, 2025
* More dramatic update

* Iterate parent of each child

* Add big many to many scenario

* Tidy up

* Enbiggen
gitKrystan added a commit that referenced this pull request Mar 10, 2025
* Add perf info for re-materialization (#9681)

* feat: runtime logging activation (#9683)

* feat: runtime logging activation

* fix bugs

* more fixes

* fix lint

* fix build

* fix more lint

* nicer names

* Fix bug where race condition causes errors during Request refresh (#9685)

* Fix bug where race condition causes errors during Request refresh

* Fix lint

* Lint

* feat(cache): add peekRemoteState to cache to view remote state (#9624)

* feat(cache): add peekRemoteState to cache to view remote state

* fix lint

* update comment

* commit working state

* Add test for getRemoteRelationship

* lint fixes

* another change to expected docs

* prettier fix

* Test fixes

* feat: add patchRecord util to JSON:API (#9687)

* feat: immutable records should show only remote state, make builder types more useful (#9686)

* chore: add more tests around edit workflows, make builder types more useful

* implement immutable-shows-only-remote-state

* fix lint

* Fix: support all known http methods (#9689)

* fix: support all known http methods

* fix: support all known http methods

* chore: fixup SchemaRecord readme (#9690)

* chore: minor docs fixes

* Feat: hasMany linksMode (#9676)

* Port ManyArray class from the model package into the store package

* Improve the MinimumManager type definition

* Relax the json-api validation for hasMany relationships in linksMode

* Adds schema record hasMany relationships in sync linksMode

* Adds ManyArrayManager to manage hasMany relationship arrays

* Adds mutate method to RecordArrayManager

* Set the new ManyArrayManager to newly created ManyArrays

* Fix hasMany read tests

* Adds reloadHasMany method to ManyArrayManager

* Adds mutate method to ManyArrayManager

* Adds reference stability tests for sync hasMany relationships

* Adds reordering hasMany relationship content test

* Adds hasMany relationship reload test

* Adds hasMany relationship reload tests

* General fixes on hasMany tests

* Improve logging on JsonApi cache

* Update the parent record on a findHasMany operation

* cleanup logging and types

* fix types a different way

* smarter still

* fix lint

---------

Co-authored-by: Chris Thoburn <runspired@users.noreply.github.com>

* fix: make serialize utils smarter (#9692)

* fix: make serialize utils smarter

* fix lint

* chore: add env vars to turbo config (#9693)

* docs: small cleanup for SchemaRecord intro (#9694)

* feat: SchemaRecord guide

* cleanup schema-record

* chore: [BREAKING to prior alpha/betas] prepare SchemaRecord for stable, lockdown exports (#9697)

* chore: prepare SchemaRecord for stable, lockdown exports

* cleanup imports

* fix assertion

* doc: link to jsonapi.org when referencing

* doc: cleanup wording in SchemaRecord README

* fix: Don't notify changes for attributes not registered with the schema (#9698)

* internal: fixup diagnostic reporting (#9704)

* internal: fixup diagnostic reporting

* fix exit code

* chore: update to pnpm 10 (#9699)

* chore: update to pnpm 10

* fix prettier

* fixup settings

* fixup npmrc

* fix lockfile

* bump to 10.5.2

* make work with pnpm

* add script to warp-drive package

* fix patch

* fixup no-shadow-rule

* chore: fix fastboot test app

* fix lock

* chore: make diagnostic shutdown safer, use bun for holodeck server (#9705)

* refactor diagnostic for safer teardown

* make holodeck cleanup appropriately

* fix request test and improve diagnostic a little bit

* fix more tests

* cleanup config

* cleanup dependencies for fastboot scenario

* fix types

* fixup more tests

* fixup more tests

* dont launch holodeck for main test app (yet)

* ensure less noise in CI

* some improvements

* a new approach

* attempt no sync

* use internal sync

* more cleanup

* fix sync

* fix install

* fix more missing peers

* more vite cleanup

* fix more tests, make diagnostic easier to launch

* disable caching

* try something

* fix no-cache

* fix missing testem

* try fastboot again

* cleanup

* cleanup

* try

* updated lockfile with new npmrc settings

* fixup comment

* fixup fastboot

* fix prod tests

* restore settings

* fix deprecation test

* make nicer?

* keep some changes

* fix it

* fix newline

* dont use turbo

* fixup more commands?

* maybe

* fixup

* still use exec

* fix scneario

* update npmrc text

* fix quote mark

* fix(deps): update dependency vite to ^5.4.14 (#9666)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency globby to ^14.1.0 (#9708)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency bun-types to v1.2.4 (#9706)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix(deps): update dependency inflection to ~3.0.2 (#9664)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency terser-webpack-plugin to ^5.3.12 (#9710)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update node.js to >= 18.20.7 (#9711)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix(deps): update dependency globals to ^15.15.0 (#9715)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix(deps): update dependency rollup to ^4.34.9 (#9716)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix(deps): update dependency semver to ^7.7.1 (#9717)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update ember-core (#9719)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix(deps): update dependency debug to ^4.4.0 (#9714)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix(deps): update dependency @ember/optional-features to ^2.2.0 (#9713)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix(deps): update asset-compilation (#9712)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency @ember/string to v4.0.1 (#9721)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency command-line-args to v6 (#9722)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency expect-type to v1 (#9724)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency ember-inflector to v5 (#9723)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency mocha to v11 (#9726)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency rimraf to v6 (#9727)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update oven-sh/setup-bun action to v2 (#9729)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix(deps): update dependency ember-cli to v6 (#9733)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix(deps): update build-tools (#9570)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix(deps): update dependency ember-load-initializers to v3 (#9736)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix(deps): update dependency globals to v16 (#9737)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* Fix metric count data typo

* fix(deps): update code-quality (#9571)

* fix(deps): update code-quality

* dont bump @types/qunit

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Chris Thoburn <runspired@users.noreply.github.com>

* bump version of tracerbench

* chore: add logging to proxy server for debugging

* chore: Modernize Performance App (use Vite) (#9707)

* stash

* stash

* cleanup lockfile

* more updates to harness

* more work on scenarios

* add bun log

* simplify perf test build

* another pass through

* turns out we want compat

* make easier to debug

* turn on verbose logging

* try

* use string :eyeroll:

* exclude more logs

* exclude more

* add debug mode for chrome

* give longer timeout for logging

* lets inspect

* fix server

* update check, reduce logging

* fckn finly

* chore: update main version of perf checks

* chore: fixup vite config for perf (#9744)

fixup vite config for perf

* feat: new perf scenario for complex records (#9745)

* chore: update scenario

* chore: remove mixin workaround

* More dramatic update for update-with-same-state perf test (#9743)

* More dramatic update

* Iterate parent of each child

* Add big many to many scenario

* Tidy up

* Enbiggen

* chore: bump size of benchmark (#9746)

* Actually add the m2m test case to the perf test output (#9748)

* Actually add the m2m test case to the perf test output

* Update .github/workflows/perf-check.yml

---------

Co-authored-by: Chris Thoburn <runspired@users.noreply.github.com>

* chore: update perf suite (#9749)

* Don't overnotify for updates to added state that match local updates (#9702)

* Don't overnotify for updates to added state that match local updates

* Fix typo

* Tidy up

* stash stuffs

* Add log counts to replace-related-records

* update all the stuffs

* fixup log

---------

Co-authored-by: Chris Thoburn <runspired@users.noreply.github.com>

* Backport tests/main/tsconfig

* Remove unneccessary test assertions

---------

Co-authored-by: Chris Thoburn <runspired@users.noreply.github.com>
Co-authored-by: Rich Glazerman <rglazerman@squareup.com>
Co-authored-by: Leo Euclides <leoeuclidss@gmail.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
MehulKChaudhari pushed a commit to MehulKChaudhari/ember-data that referenced this pull request Mar 16, 2025
* More dramatic update

* Iterate parent of each child

* Add big many to many scenario

* Tidy up

* Enbiggen
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
ci-perf Activates Performance Checks in CI 🎯 canary PR is targeting canary (default) 🏷️ perf PRs that improve performance in a notable way
Projects
Archived in project
Development

Successfully merging this pull request may close these issues.

2 participants