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

NVP's Quest Issue for Investigating Performance #1605

Open
4 of 12 tasks
NullVoxPopuli opened this issue Sep 6, 2024 · 0 comments
Open
4 of 12 tasks

NVP's Quest Issue for Investigating Performance #1605

NullVoxPopuli opened this issue Sep 6, 2024 · 0 comments

Comments

@NullVoxPopuli
Copy link
Contributor

NullVoxPopuli commented Sep 6, 2024

Original Issue: #1590

As a part of this issue, it was reported that, in consuming ember.js apps, the vendor.js (where the VM lives), grew by ~ 50KB.
See: emberjs/ember.js#20628

Suspicions to investigate

  • we need embroider and auto-import to use the real @glimmer/* dependencies and not the ember-source/dist/dependencies stuff
    • embroider already supports handling export conditions
    • it would likely be too accidentally disruptive to switch to using real glimmer packages in a patch release
    • ember-source's deps should instead use the correct glimmer (and we wshould confirm this)
  • debug code is ending up in production (even in 0.84.3)
    • if any debug things that weren't present in 0.84.3 should be changed to LOCAL_DEBUG
    • are there any DEBUG things that are not for ember-debug?
  • dead code elimination of the GlimmerVM
  • are there possibly duplicate modules between the packages?
  • destruction, while async, is autotracked -- it doesn't need to be autotracked -- can we remove that?
  • iteration changes in 64eb186

Things that don't work

No change in perf

Things that have a small improvement

  • about 6% improvement
    • Explore performance 3 #1598
    • However, this begs the question if our CI's performance benchmark is using development or production
      • 2024-09-06: the benchmark in CI does use the prod build
  • about a 1% improvement

Needs further exploration

Notes

Which packages are in ember-source?

ember-source @ v5.4ember-source @ 6 alpha

@glimmer/destroyable
@glimmer/encoder
@glimmer/env
@glimmer/global-context
@glimmer/low-level
@glimmer/manager
@glimmer/node
@glimmer/opcode-compiler
@glimmer/owner
@glimmer/program
@glimmer/reference
@glimmer/runtime
@glimmer/tracking/index
@glimmer/tracking/primitives/cache
@glimmer/util
@glimmer/validator
@glimmer/vm
@glimmer/wire-format

@glimmer/debug
@glimmer/destroyable
@glimmer/encoder
@glimmer/env
@glimmer/global-context
@glimmer/manager
@glimmer/node
@glimmer/opcode-compiler
@glimmer/owner
@glimmer/program
@glimmer/reference
@glimmer/runtime
@glimmer/tracking/index
@glimmer/tracking/primitives/cache
@glimmer/util
@glimmer/validator
@glimmer/vm
@glimmer/wire-format

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant