mirror of
https://github.com/open-policy-agent/opa.git
synced 2026-08-13 03:42:35 -06:00
e1e2bfb876
Mainly making transactions cheaper to create, and read transactions much cheaper. - Add exported RootPath shorthand var - Don't return path on ParsePathEscaped failure - Allocate nothing for read transactions, other than the transaction itself - Lazy init of write update collections to avoid needless allocations - Add benchmarks **Before** ``` BenchmarkNewTransaction/Read-16 26707234 44.78 ns/op 144 B/op 3 allocs/op BenchmarkNewTransaction/Write-16 20344212 59.44 ns/op 192 B/op 4 allocs/op BenchmarkReadOne/Go_store_(roundtrip)-16 21963003 54.41 ns/op 144 B/op 3 allocs/op BenchmarkReadOne/Go_store_(no_roundtrip)-16 22217593 54.18 ns/op 144 B/op 3 allocs/op BenchmarkReadOne/AST_store_(roundtrip)-16 15626653 76.52 ns/op 160 B/op 4 allocs/op BenchmarkReadOne/AST_store_(no_roundtrip)-16 15820837 76.15 ns/op 160 B/op 4 allocs/op ``` **After** ``` BenchmarkNewTransaction/Read-16 68091271 17.37 ns/op 48 B/op 1 allocs/op BenchmarkNewTransaction/Write-16 24928028 47.68 ns/op 144 B/op 3 allocs/op BenchmarkReadOne/Go_store_(roundtrip)-16 42967630 28.10 ns/op 48 B/op 1 allocs/op BenchmarkReadOne/Go_store_(no_roundtrip)-16 43825009 27.63 ns/op 48 B/op 1 allocs/op BenchmarkReadOne/AST_store_(roundtrip)-16 24885938 48.06 ns/op 64 B/op 2 allocs/op BenchmarkReadOne/AST_store_(no_roundtrip)-16 25012396 47.96 ns/op 64 B/op 2 allocs/op ``` Signed-off-by: Anders Eknert <anders@eknert.com>