Files
Anders Eknert 397f9b0245 perf: Allocate less in array unification (#8351)
Surprisingly, this sailed up as the major source of B/op in the Regal
linting itself benchmark. I guess we never paid attention to it in the
past as there were many worse culprits.

With help from @tsandall we tracked this down to Regal's frequent use
of walk, and how that'd unify the path-value array. Not sure if there
are any other noteworthy scenarios that lead on to this path, but at
least us `walk` enthusiasts get to start the weekend in the best possible
way.

No surprises wrt the fix here. Just cram everything into a single struct that
can be reused across requests via a sync pool. Not particularly elegant, but
fairly limited, so I hope to get this in even if the impact should be minimal
outside of `walk` heavy integrations.

RegalLintingItself benchmark, main vs change. Ns/op and # allocs largely
unchanged, while the difference in B/op is rather massive for a simple
change!
```
348015056 ns/op	1260364874 B/op	31868705 allocs/op
343963417 ns/op	1122163613 B/op	31874931 allocs/op
```

Signed-off-by: Anders Eknert <anders.eknert@apple.com>
2026-02-23 13:20:27 +00:00
..
2025-06-23 11:40:00 +02:00
2025-05-28 23:19:31 +02:00
2025-06-23 11:40:00 +02:00
2025-06-23 11:40:00 +02:00
2025-12-16 11:47:04 +01:00
2025-06-23 11:40:00 +02:00
2026-02-12 08:42:05 +01:00
2025-01-31 20:24:05 +01:00
2025-12-16 11:47:04 +01:00
2025-06-23 11:40:00 +02:00
2025-05-20 23:12:13 +02:00
2026-01-08 10:24:13 +01:00
2025-06-23 11:40:00 +02:00
2025-06-23 11:40:00 +02:00
2025-06-23 11:40:00 +02:00
2025-06-23 11:40:00 +02:00
2025-05-28 23:19:31 +02:00