In case it's useful to others, I dropped the size in my compiled binary from 2.4Mi to 2Mi by:
- Not including //src/core:grpc_external_account_credentials (with minor function changes not to try it) - Not including any of the load balancers I was not using (PickFirst is the default) - Removing the grpc_resolver_dns_ares (with a small number of code changes) - Also RegisterFakeResolver, RegisterHttpProxyMapper, FaultInjectionFilterRegister This was done just with an unconditional local patch for now. On Saturday, April 29, 2023 at 12:56:36 AM UTC-4 Kyle Loveless wrote: > Hey folks, > > Just curious if there is a current opinion about opportunities to make > gRPC a smaller final library - with or without symbols. > > Using bloaty <https://github.com/google/bloaty/blob/main/doc/using.md>, > my C++ server, which uses gRPC, has ~2.4MiB of VM size from it (not > including other dependencies, like proto or SSL), and 59.4MB of file size > (the difference being debug symbols, if not stripped). While ~2.4MiB > doesn't seem too bad, the debug symbols are bit hefty. > > I poked around a bit, and I suspect there is some opportunity for > additional compile options so more can be dropped at link time. For > instance: > > - Several types of credentials, even though maybe only a small subset > are used. e.g. > > src/core/lib/security/credentials/external/aws_external_account_credentials.cc > > uses 32KiB of VM, and 476Ki with symbols. Presumably this only applies for > certain users, and not in my case, but is kept during linking since it is > not known it won't come up. > - All of the load balancing policies are linked in, even though maybe > only a small subset are used. rls/ is 95Ki of VM, 2.7MiB with symbols), > outlier detection is 30 KiB of VM, 914KiB with symbols. > > And of course, everything is a trade-off - more options means more > variations for users and possible confusion. > > Thoughts? Are there possible options that folks that could opt-in that > could lead to significant reductions to make it worth it? > > Thanks! > > Kyle > -- 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 grpc-io+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/grpc-io/7a43ef2d-c943-4028-a7a7-0f0cdd77abaen%40googlegroups.com.