]>
git.feebdaed.xyz Git - 0xmirror/ebpf.git/commit
kallsyms: don't allocate temporary slices
We currently allocate a lot of small strings to hold symbol and
module name. This happens even if we aren't interested in that
specific symbol.
Use the map[string([]byte)] optimization to remove temporary
allocations.
```
goos: linux
goarch: amd64
pkg: github.com/cilium/ebpf/internal/kallsyms
cpu: AMD Ryzen 7 3700X 8-Core Processor
│ old.txt │ new.txt │
│ sec/op │ sec/op vs base │
AssignModules-16 3.326µ ± 0% 3.009µ ± 2% -9.53% (p=0.002 n=6)
AssignAddresses-16 4.187µ ± 1% 3.351µ ± 1% -19.98% (p=0.002 n=6)
AssignModulesKallsyms-16 307.1m ± 3% 294.3m ± 7% -4.15% (p=0.002 n=6)
AssignAddressesKallsyms-16 322.7m ± 2% 301.7m ± 2% -6.52% (p=0.002 n=6)
geomean 1.084m 972.6µ -10.26%
│ old.txt │ new.txt │
│ B/op │ B/op vs base │
AssignModules-16 4.258Ki ± 0% 4.172Ki ± 0% -2.02% (p=0.002 n=6)
AssignAddresses-16 4.453Ki ± 0% 4.141Ki ± 0% -7.02% (p=0.002 n=6)
AssignModulesKallsyms-16 8458.543Ki ± 0% 4.312Ki ± 0% -99.95% (p=0.002 n=6)
AssignAddressesKallsyms-16 12586.352Ki ± 0% 4.219Ki ± 0% -99.97% (p=0.002 n=6)
geomean 212.0Ki 4.210Ki -98.01%
│ old.txt │ new.txt │
│ allocs/op │ allocs/op vs base │
AssignModules-16 11.000 ± 0% 5.000 ± 0% -54.55% (p=0.002 n=6)
AssignAddresses-16 21.000 ± 0% 3.000 ± 0% -85.71% (p=0.002 n=6)
AssignModulesKallsyms-16 323560.00 ± 0% 12.00 ± 0% -100.00% (p=0.002 n=6)
AssignAddressesKallsyms-16 536565.000 ± 0% 7.000 ± 0% -100.00% (p=0.002 n=6)
geomean 2.517k 5.958 -99.76%
```
Signed-off-by: Lorenz Bauer <lmb@isovalent.com>
Co-authored-by: Timo Beckers <timo@isovalent.com>