Skip to content

Conversation

Rich-Harris
Copy link
Member

Alternative to #15855 with same-or-better performance (the differences on the benchmark comparison are just noise)

sbench_create_signals time: fastest is a (flush-sync) a: ◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼ 439.97ms b: ◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼ 441.55ms gc_time: fastest is b (flush-sync-2) a: ◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼ 197.34ms b: ◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼ 194.39ms sbench_create_0to1 time: fastest is b (flush-sync-2) a: ◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼ 4.87ms b: ◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼ 4.82ms sbench_create_1to1 time: fastest is b (flush-sync-2) a: ◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼ 21.87ms b: ◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼ 21.84ms gc_time: fastest is b (flush-sync-2) a: ◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼ 2.77ms b: ◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼ 2.74ms sbench_create_2to1 time: fastest is b (flush-sync-2) a: ◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼ 19.89ms b: ◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼ 19.46ms gc_time: fastest is b (flush-sync-2) a: ◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼ 2.80ms b: ◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼ 2.70ms sbench_create_4to1 time: fastest is a (flush-sync) a: ◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼ 18.13ms b: ◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼ 18.54ms gc_time: fastest is b (flush-sync-2) a: ◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼ 2.77ms b: ◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼ 2.68ms sbench_create_1000to1 time: fastest is b (flush-sync-2) a: ◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼ 16.78ms b: ◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼ 16.61ms gc_time: fastest is a (flush-sync) a: ◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼ 2.76ms b: ◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼ 2.78ms sbench_create_1to2 time: fastest is a (flush-sync) a: ◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼ 10.65ms b: ◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼ 10.75ms gc_time: fastest is a (flush-sync) a: ◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼ 0.60ms b: ◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼ 0.68ms sbench_create_1to4 time: fastest is b (flush-sync-2) a: ◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼ 8.57ms b: ◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼ 8.16ms gc_time: fastest is a (flush-sync) a: ◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼ 0.49ms b: ◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼ 0.52ms sbench_create_1to8 time: fastest is b (flush-sync-2) a: ◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼ 6.75ms b: ◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼ 6.31ms sbench_create_1to1000 time: fastest is a (flush-sync) a: ◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼ 4.62ms b: ◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼ 5.13ms kairo_avoidable_owned time: fastest is b (flush-sync-2) a: ◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼ 297.36ms b: ◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼ 295.26ms gc_time: fastest is b (flush-sync-2) a: ◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼ 7.46ms b: ◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼ 7.38ms kairo_avoidable_unowned time: fastest is b (flush-sync-2) a: ◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼ 400.70ms b: ◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼ 399.96ms gc_time: fastest is a (flush-sync) a: ◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼ 6.61ms b: ◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼ 6.66ms kairo_broad_owned time: fastest is a (flush-sync) a: ◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼ 431.46ms b: ◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼ 434.64ms kairo_broad_unowned time: fastest is a (flush-sync) a: ◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼ 431.08ms b: ◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼ 444.73ms kairo_deep_owned time: fastest is a (flush-sync) a: ◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼ 189.08ms b: ◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼ 193.74ms kairo_deep_unowned time: fastest is b (flush-sync-2) a: ◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼ 928.16ms b: ◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼ 924.90ms kairo_diamond_owned time: fastest is a (flush-sync) a: ◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼ 286.58ms b: ◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼ 288.65ms gc_time: fastest is b (flush-sync-2) a: ◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼ 4.36ms b: ◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼ 4.22ms kairo_diamond_unowned time: fastest is a (flush-sync) a: ◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼ 393.78ms b: ◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼ 397.18ms gc_time: fastest is b (flush-sync-2) a: ◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼ 4.58ms b: ◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼ 4.53ms kairo_triangle_owned time: fastest is a (flush-sync) a: ◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼ 94.42ms b: ◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼ 94.50ms gc_time: fastest is b (flush-sync-2) a: ◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼ 0.66ms b: ◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼ 0.60ms kairo_triangle_unowned time: fastest is a (flush-sync) a: ◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼ 215.03ms b: ◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼ 215.11ms gc_time: fastest is a (flush-sync) a: ◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼ 0.71ms b: ◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼ 0.73ms kairo_mux_owned time: fastest is a (flush-sync) a: ◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼ 316.02ms b: ◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼ 317.30ms gc_time: fastest is a (flush-sync) a: ◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼ 2.04ms b: ◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼ 2.28ms kairo_mux_unowned time: fastest is b (flush-sync-2) a: ◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼ 475.75ms b: ◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼ 475.16ms gc_time: fastest is a (flush-sync) a: ◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼ 2.26ms b: ◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼ 2.45ms kairo_repeated_owned time: fastest is a (flush-sync) a: ◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼ 45.46ms b: ◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼ 46.23ms gc_time: fastest is a (flush-sync) a: ◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼ 0.22ms b: ◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼ 0.22ms kairo_repeated_unowned time: fastest is a (flush-sync) a: ◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼ 46.42ms b: ◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼ 47.09ms gc_time: fastest is b (flush-sync-2) a: ◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼ 0.22ms b: ◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼ 0.20ms kairo_unstable_owned time: fastest is a (flush-sync) a: ◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼ 77.92ms b: ◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼ 79.54ms gc_time: fastest is b (flush-sync-2) a: ◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼ 0.82ms b: ◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼ 0.74ms kairo_unstable_unowned time: fastest is a (flush-sync) a: ◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼ 96.12ms b: ◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼ 97.83ms gc_time: fastest is b (flush-sync-2) a: ◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼ 0.93ms b: ◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼ 0.90ms mol_bench_owned time: fastest is b (flush-sync-2) a: ◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼ 280.24ms b: ◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼ 279.20ms gc_time: fastest is a (flush-sync) a: ◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼ 0.30ms b: ◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼ 0.33ms mol_bench_unowned time: fastest is b (flush-sync-2) a: ◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼ 297.42ms b: ◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼ 296.95ms gc_time: fastest is a (flush-sync) a: ◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼ 0.26ms b: ◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼ 0.26ms 

Before submitting the PR, please make sure you do the following

  • It's really useful if your PR references an issue where it is discussed ahead of time. In many cases, features are absent for a reason. For large changes, please create an RFC: https://github.com/sveltejs/rfcs
  • Prefix your PR title with feat:, fix:, chore:, or docs:.
  • This message body should clearly illustrate what problems it solves.
  • Ideally, include a test that fails without this PR but passes with it.
  • If this PR changes code within packages/svelte/src, add a changeset (npx changeset).

Tests and linting

  • Run the tests with pnpm test and lint the project with pnpm lint
@github-actions
Copy link
Contributor

Playground

pnpm add https://pkg.pr.new/svelte@15895 
This reverts commit f8de1cf.
@changeset-bot
Copy link

changeset-bot bot commented May 12, 2025

🦋 Changeset detected

Latest commit: d49b04e

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 1 package
Name Type
svelte Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@Rich-Harris Rich-Harris merged commit b616412 into main May 12, 2025
13 checks passed
@Rich-Harris Rich-Harris deleted the flush-sync-2 branch May 12, 2025 19:51
@github-actions github-actions bot mentioned this pull request May 12, 2025
raythurnvoid added a commit to raythurnvoid/svelte that referenced this pull request Jun 4, 2025
…ltejs#15895) * chore: avoid microtasks when flushing sync * chore: avoid microtasks when flushing sync * chore: avoid microtasks when flushing sync * tweak * WIP * another * more * tweak * fix * fix * belt and braces * Revert "belt and braces" This reverts commit f8de1cf. --------- Co-authored-by: Dominic Gannaway <trueadm@users.noreply.github.com>" This reverts commit b616412.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

2 participants