Fix bounded max partial state#8515
Conversation
Signed-off-by: "Nicholas Gates" <nick@nickgates.com>
Merging this PR will improve performance by 11.85%
|
| Mode | Benchmark | BASE |
HEAD |
Efficiency | |
|---|---|---|---|---|---|
| ❌ | Simulation | chunked_varbinview_canonical_into[(1000, 10)] |
155 µs | 191.5 µs | -19.03% |
| ❌ | Simulation | chunked_varbinview_into_canonical[(1000, 10)] |
170 µs | 206.5 µs | -17.68% |
| ❌ | Simulation | varbinview_large |
112.5 µs | 130.9 µs | -14.09% |
| ⚡ | Simulation | bitwise_not_vortex_buffer_mut[128] |
244.4 ns | 186.1 ns | +31.34% |
| ⚡ | Simulation | baseline_eq[4, 65536] |
243.4 µs | 185.8 µs | +31.03% |
| ⚡ | Simulation | baseline_lt[4, 65536] |
258.9 µs | 201.1 µs | +28.7% |
| ⚡ | Simulation | baseline_eq[16, 65536] |
288.3 µs | 230.7 µs | +24.96% |
| ⚡ | Simulation | bitwise_not_vortex_buffer_mut[1024] |
304.7 ns | 246.4 ns | +23.68% |
| ⚡ | Simulation | baseline_lt[16, 65536] |
303.6 µs | 245.9 µs | +23.48% |
| ⚡ | Simulation | chunked_varbinview_opt_into_canonical[(1000, 10)] |
220.8 µs | 184.2 µs | +19.87% |
| ⚡ | Simulation | bitwise_not_vortex_buffer_mut[2048] |
427.8 ns | 369.4 ns | +15.79% |
| ⚡ | Simulation | chunked_varbinview_canonical_into[(100, 100)] |
258.9 µs | 223.7 µs | +15.71% |
| ⚡ | Simulation | chunked_varbinview_opt_canonical_into[(100, 100)] |
340 µs | 305.4 µs | +11.33% |
| ⚡ | Simulation | chunked_varbinview_opt_into_canonical[(100, 100)] |
391.2 µs | 353.1 µs | +10.8% |
Tip
Investigate this regression by commenting @codspeedbot fix this regression on this PR, or directly use the CodSpeed MCP with your agent.
Comparing ngates/bounded-max (c04f8cc) with develop (3f54d1f)
|
Can you add an explanation of the issue to the PR description? |
This is a breaking change to the serialized form of BoundedMax. The ZonedLayout change to persist these types hasn't been released yet though, so it is still safe to change for now.
In case of producing a bounded max value on top of another bounded max value we need to know if the original value was null or whether it became null after producing bound. It's safe to skip chunks in the first case but not in the second thus the zoned stats have to differentiate between the two
handle #8166