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

Arced Program #18

Draft
wants to merge 2 commits into
base: mainnet-staging
Choose a base branch
from
Draft

Conversation

ljedrz
Copy link
Collaborator

@ljedrz ljedrz commented Jun 17, 2024

In one of my ledger-load-only heap profiles the cloning of the Program (ProgramCore<N, Instruction<N>, Command<N>>) was quite prominent, meaning it could be a good candidate for Arcing; such a change would also make the Boxing of the related Deployment superfluous, which would also contribute to a reduction in clones.

The clones of the Program are apparently also quite slow; even in a ledger where this change only results in a tiny change to the number of allocations, this speeds up its loading (via Ledger::load) by ~8%.

I'm filing this PR as a draft for 2 reasons:

  • I'm not too happy about the Map-related type changes; while those would be an additional win for in-memory storage, I'm not convinced about the persistent one
  • I'd like to perform profiling again with a larger storage, in order to double-check these findings; I will do so soon, when the current devnet's ledger grows larger

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

Successfully merging this pull request may close these issues.

1 participant