You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
internal/core/adt: use pointers for snapshot and result in nodeContext
These fields are only used in evalv2's disjunction algorithm,
so they are entirely unused in evalv3, the current default.
Given how often nodeContext structs are allocated,
this helps reduce the memory usage of the new allocator.
│ old │ new │
│ sec/op │ sec/op vs base │
VetAutomata 724.0m ± 13% 674.2m ± 9% -6.88% (p=0.050 n=8)
│ old │ new │
│ B/op │ B/op vs base │
VetAutomata 700.7Mi ± 0% 631.9Mi ± 0% -9.81% (p=0.000 n=8)
│ old │ new │
│ allocs/op │ allocs/op vs base │
VetAutomata 4.478M ± 0% 4.478M ± 0% ~ (p=0.316 n=8)
Performance on evalv2 is unaffected; adt.TestEvalV2 still takes 3.9s,
and Unity on evalv2 shows noise in the 0-5% range.
Unity on evalv3 shows improvements between 0 and 10% for wall times
as well as for Go.AllocBytes counters.
Updates #3334.
Signed-off-by: Daniel Martí <[email protected]>
Change-Id: Idab308cb88980b9618c9c4164fae41b870442bd9
Reviewed-on: https://review.gerrithub.io/c/cue-lang/cue/+/1217121
TryBot-Result: CUEcueckoo <[email protected]>
Reviewed-by: Marcel van Lohuizen <[email protected]>
Unity-Result: CUE porcuepine <[email protected]>
0 commit comments