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

fix(swingset): remove xs-worker-no-gc and gcEveryCrank #5707

Merged
merged 1 commit into from
Jul 9, 2022

Conversation

warner
Copy link
Member

@warner warner commented Jun 30, 2022

While we were debugging performance problems last year, we introduced
managerType: 'xs-worker-no-gc', which is a variant of xs-worker
that disables the forced GC we were doing at the end of every
delivery.

Since then, we've improved performance in several ways:

  • XS bugs were retaining objects, which have since been fixed
  • we only do a forced GC during special dispatch.bringOutYourDead
    cranks
  • we deliver BOYD less often (according to a configurable schedule,
    see Performance impact of BOYD #4160 for our decisions, but we're thinking once every 100 to 1000
    deliveries)

The xs-worker-no-gc manager type controlled a flag named
gcEveryCrank, which replaced the GC primitive available to liveslots
with a dummy version.

This commit removes both xs-worker-no-gc and gcEveryCrank.

closes #5600

@warner warner added the SwingSet package: SwingSet label Jun 30, 2022
@warner warner requested a review from michaelfig June 30, 2022 23:46
@warner warner self-assigned this Jun 30, 2022
@warner warner force-pushed the 5600-remove-xs-worker-no-gc branch 4 times, most recently from 21799ce to c09b6d6 Compare July 7, 2022 08:47
@warner warner requested review from FUDCo and removed request for michaelfig July 9, 2022 02:07
Copy link
Contributor

@FUDCo FUDCo left a comment

Choose a reason for hiding this comment

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

Hooray for crap removal!

While we were debugging performance problems last year, we introduced
`managerType: 'xs-worker-no-gc'`, which is a variant of `xs-worker`
that disables the forced GC we were doing at the end of every
delivery.

Since then, we've improved performance in several ways:

* XS bugs were retaining objects, which have since been fixed
* we only do a forced GC during special `dispatch.bringOutYourDead`
cranks
* we deliver BOYD less often (according to a configurable schedule,
see #4160 for our decisions, but we're thinking once every 100 to 1000
deliveries)

The `xs-worker-no-gc` manager type controlled a flag named
`gcEveryCrank`, which replaced the GC primitive available to liveslots
with a dummy version.

This commit removes both `xs-worker-no-gc` and `gcEveryCrank`.

closes #5600
@warner warner force-pushed the 5600-remove-xs-worker-no-gc branch from c09b6d6 to b3c7c64 Compare July 9, 2022 20:23
@warner warner added the automerge:rebase Automatically rebase updates, then merge label Jul 9, 2022
@mergify mergify bot merged commit abd0946 into master Jul 9, 2022
@mergify mergify bot deleted the 5600-remove-xs-worker-no-gc branch July 9, 2022 21:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
automerge:rebase Automatically rebase updates, then merge SwingSet package: SwingSet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

remove gcEveryCrank and worker type xs-worker-no-gc
2 participants