Closed marselester closed 1 year ago
I figured out why there was an extra memory consumption per operation after refactoring and resolved the problem.
BenchmarkUnixFDs-2 7988 298127 ns/op 16989 B/op 614 allocs/op
Down to 606 allocs from 907, also the benchmark shows 8.17KB less memory usage.
# new
BenchmarkUnixFDs-2 7674 237934 ns/op 16368 B/op 606 allocs/op
# old
BenchmarkUnixFDs-2 6574 330534 ns/op 24737 B/op 907 allocs/op
I will try these changes on some realistic workload to make sure there is no regression.
I have tested the changes on Parca Agent and posted memory profiles here https://github.com/parca-dev/parca-agent/issues/1037#issuecomment-1345331993.
It appeared to me that certain decoding performed in
ReadMessage
was repeated inDecodeMessageWithFDs
, so I got rid of it. That yielded 58 less allocs, though consumed 5.63KB more per operation according to the benchmark.It seems more memory is spent at
syscall.anyToSockaddr
after refactoring, see the profiles below.new
old