Avatar for the salsa-rs user
salsa-rs
salsa
BlogDocsChangelog

Store `cycle_heads` in a side map instead of inside the memo

#815Closed
Comparing
ChayimFriedman2:interned-map-mem
(
9052d84
) with
master
(
201a8dd
)
CodSpeed Performance Gauge
-10%
Improvements
0
Regressions
1
Untouched
11
New
0
Dropped
0
Ignored
0

Benchmarks

Failed

converge_divergeRegression
benches/dataflow.rs::benches::dataflow::converge_diverge
CodSpeed Performance Gauge
-10%
134.1 µs
149.4 µs

Passed

amortized[SupertypeInput]
benches/compare.rs::benches::inputs::Mutating Inputs::amortized[SupertypeInput]
CodSpeed Performance Gauge
+4%
4.1 µs
3.9 µs
accumulator
benches/accumulator.rs::benches::accumulator::accumulator
CodSpeed Performance Gauge
+3%
4.2 ms
4 ms
amortized[InternedInput]
benches/compare.rs::benches::inputs::Mutating Inputs::amortized[InternedInput]
CodSpeed Performance Gauge
+3%
3.3 µs
3.2 µs
new[InternedInput]
benches/compare.rs::benches::inputs::Mutating Inputs::new[InternedInput]
CodSpeed Performance Gauge
+2%
5.6 µs
5.4 µs
amortized[Input]
benches/compare.rs::benches::inputs::Mutating Inputs::amortized[Input]
CodSpeed Performance Gauge
+2%
3.4 µs
3.3 µs
many_tracked_structs
benches/incremental.rs::benches::many_tracked_structs::many_tracked_structs
CodSpeed Performance Gauge
+1%
36.8 µs
36.5 µs
mutating[10]
benches/compare.rs::benches::mutating_inputs::Mutating Inputs::mutating[10]
CodSpeed Performance Gauge
+1%
13.4 µs
13.3 µs
mutating[20]
benches/compare.rs::benches::mutating_inputs::Mutating Inputs::mutating[20]
CodSpeed Performance Gauge
+1%
13.6 µs
13.5 µs
mutating[30]
benches/compare.rs::benches::mutating_inputs::Mutating Inputs::mutating[30]
CodSpeed Performance Gauge
+1%
13.8 µs
13.7 µs
new[Input]
benches/compare.rs::benches::inputs::Mutating Inputs::new[Input]
CodSpeed Performance Gauge
0%
10.1 µs
10.1 µs
new[SupertypeInput]
benches/compare.rs::benches::inputs::Mutating Inputs::new[SupertypeInput]
CodSpeed Performance Gauge
-2%
16.7 µs
17 µs

Commits

Click on a commit to change the comparison range
Base
master
201a8dd
-10%
Store `cycle_heads` in a side map instead of inside the memo Since most queries don't have cycles (and even those that do get removed from the map when the cycle is verified), this saves memory. The details were tricky to get right (and it took multiple attempts), but I think I nailed it now.
9052d84
2 months ago
by ChayimFriedman2
© 2025 CodSpeed Technology
Home Terms Privacy Docs