У меня есть простой сервер GRP c в golang, который выполняет операции CRUD над объектом. Тем не менее, когда я запускаю его, память никогда не падает, даже после остановки запросов. pprof of heap show имеет следующий результат:
> flat flat% sum% cum cum%
> 932.39MB 62.45% 62.45% 932.39MB 62.45% google.golang.org/grpc/internal/transport.newBufWriter
> 463.13MB 31.02% 93.46% 463.13MB 31.02% bufio.NewReaderSize
> 13.50MB 0.9% 94.37% 13.50MB 0.9% runtime.malg
> 13MB 0.87% 95.24% 1420.52MB 95.14% google.golang.org/grpc/internal/transport.newHTTP2Server
> 11MB 0.74% 95.98% 12.10MB 0.81% time.NewTimer
> 8.50MB 0.57% 96.54% 8.50MB 0.57% golang.org/x/net/http2/hpack.(*headerFieldTable).addEntry
> 5.50MB 0.37% 96.91% 17.60MB 1.18% google.golang.org/grpc/internal/transport.(*http2Server).keepalive
> 3.50MB 0.23% 97.15% 7.50MB 0.5% google.golang.org/grpc/internal/transport.newLoopyWriter
> 1.50MB 0.1% 97.25% 12.50MB 0.84% google.golang.org/grpc.(*Server).serveStreams
> 0 0% 97.25% 10MB 0.67% golang.org/x/net/http2.(*Framer).ReadFrame
Может кто-нибудь подсказать мне, как go решить эту проблему с памятью? Сервер работает с параметрами по умолчанию, и я даже включил функцию debug.FreeOSMemory () для освобождения памяти.