angular/packages/core/test/signals
Alex Rickabaugh 62161a630f refactor(core): global epoch to optimize non-live signal reads (#52420)
This commit adds a global epoch to the reactive graph, which can optimize
non-live reads.

When a non-live read occurs, a computed must poll its dependencies to check
if they've changed, and this operation is transitive and not cacheable.
Since non-live computeds don't receive dirty notifications, they're forced
to assume potential dirtiness on each and every read.

Using a global epoch, we can add an important optimization: if *no* signals
have been set globally since the last time it polled its dependencies, then
we *can* assume a clean state. This significantly improves performance of
large unwatched graphs when repeatedly reading values.

PR Close #52420
2023-10-31 13:12:18 -07:00
..
BUILD.bazel refactor: move signals code into primitives package (#51986) 2023-10-06 15:12:00 -07:00
computed_spec.ts refactor: move signals code into primitives package (#51986) 2023-10-06 15:12:00 -07:00
effect_util.ts refactor: move signals code into primitives package (#51986) 2023-10-06 15:12:00 -07:00
glitch_free_spec.ts refactor(core): extract signals API away from the 'signals' package (#51986) 2023-10-06 15:11:59 -07:00
is_signal_spec.ts refactor(core): extract signals API away from the 'signals' package (#51986) 2023-10-06 15:11:59 -07:00
non_reactive_spec.ts refactor(core): extract signals API away from the 'signals' package (#51986) 2023-10-06 15:11:59 -07:00
signal_spec.ts refactor(core): global epoch to optimize non-live signal reads (#52420) 2023-10-31 13:12:18 -07:00
watch_spec.ts refactor: move signals code into primitives package (#51986) 2023-10-06 15:12:00 -07:00