Hi,
I am investigating the memory footprint of our gRPC-based application.
While I was looking at a heap dump I found out that the most often created
String (60000 objects) is "dummy.DummyService/subscribe" which is contained
in:
java.lang.String @ 0xff38c8a8 dummy.DummyService/subscribe
'- fullMethodName io.grpc.internal.CensusStatsModule$ServerTracer @
0xff38c948
'- [0] io.grpc.StreamTracer[2] @ 0xff38c930
'- tracers io.grpc.internal.StatsTraceContext @ 0xff38c9e8
|- statsTraceCtx, statsTraceCtx
io.grpc.netty.NettyServerStream$TransportState @ 0xff38ca10
|- statsTraceCtx io.grpc.internal.MessageDeframer @ 0xff38ca68
|- statsTraceCtx io.grpc.netty.NettyServerStream @ 0xff38cb38
|- statsTraceCtx io.grpc.internal.MessageFramer @ 0xff38cb80
For reference the second most often created String (which is not related to
gRPC) has 10000 instances.
This let me to the conclusion that the tracing should be disabled (because
the application is not using this data), but methods like setStatsEnabled,
setTracingEnabled in io.grpc.netty.NettyServerBuilder are protected.
Environment: Java 8, gRPC 1.12.0
I have few questions:
- Why are these methods protected? Are stats and tracing vital for
correctly working gRPC server?
- May be it is a good idea to intern the mentioned String?
- Are there other components which can be disabled for better
performance and lower memory footprint?
Thanks,
Stefan
--
You received this message because you are subscribed to the Google Groups
"grpc.io" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/grpc-io.
To view this discussion on the web visit
https://groups.google.com/d/msgid/grpc-io/90731534-81d1-455b-ae47-55dd6d741c0f%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.