Skip to content

C++ Resolver API#13684

Merged
markdroth merged 1 commit intogrpc:masterfrom
markdroth:c++_resolver
Feb 8, 2018
Merged

C++ Resolver API#13684
markdroth merged 1 commit intogrpc:masterfrom
markdroth:c++_resolver

Conversation

@markdroth
Copy link
Copy Markdown
Member

@markdroth markdroth commented Dec 7, 2017

This is built on #13659 and #13676 (both of which have now been merged).


This change is Reviewable

@grpc-testing
Copy link
Copy Markdown

****************************************************************

libgrpc.so

     VM SIZE                                                                                            FILE SIZE
 ++++++++++++++ GROWING                                                                              ++++++++++++++
  +0.4% +2.37Ki [None]                                                                                +310Ki  +5.3%
      +0.4% +2.24Ki [Unmapped]                                                                            +310Ki  +5.4%
      [NEW]     +64 vtable for grpc_core::FakeResolver                                                       +64  [NEW]
      [NEW]     +64 vtable for grpc_core::(anonymous namespace)::AresDnsResolver                             +64  [NEW]
      [NEW]     +64 vtable for grpc_core::(anonymous namespace)::SockaddrResolver                            +64  [NEW]
      [NEW]     +64 vtable for grpc_core::(anonymous namespace)::NativeDnsResolver                           +64  [NEW]
      [NEW]     +64 vtable for grpc_core::Resolver                                                           +64  [NEW]
      [NEW]     +40 vtable for grpc_core::(anonymous namespace)::FakeResolverFactory                         +40  [NEW]
      [NEW]     +40 vtable for grpc_core::(anonymous namespace)::IPv4ResolverFactory                         +40  [NEW]
      [NEW]     +40 vtable for grpc_core::(anonymous namespace)::IPv6ResolverFactory                         +40  [NEW]
      [NEW]     +40 vtable for grpc_core::(anonymous namespace)::UnixResolverFactory                         +40  [NEW]
      [NEW]     +40 vtable for grpc_core::(anonymous namespace)::AresDnsResolverFactory                      +40  [NEW]
      [NEW]     +40 vtable for grpc_core::(anonymous namespace)::NativeDnsResolverFactory                    +40  [NEW]
      [NEW]     +40 vtable for grpc_core::InternallyRefCountedWithTracing                                    +40  [NEW]
      [NEW]     +32 vtable for grpc_core::RefCounted                                                         +32  [NEW]
      [NEW]     +32 vtable for grpc_core::FakeResolverResponseGenerator                                      +32  [NEW]
      [NEW]     +32 grpc_lb_policy_grpclb_build_lb_channel_args(grpc_slice_hash_table*, grpc_core::FakeR     +32  [NEW]
      [NEW]     +24 grpc_core::(anonymous namespace)::response_generator_arg_vtable                          +24  [NEW]
      [NEW]     +16 grpc_core::(anonymous namespace)::AresDnsResolver::OnResolvedLocked(void*, grpc_erro       0  [ = ]
      [NEW]     +12 grpc_core::(anonymous namespace)::kDefaultPort                                           +12  [NEW]
      [NEW]      +8 grpc_core::g_registry                                                                      0  [ = ]
  +5.3%    +743 src/core/ext/filters/client_channel/client_channel.cc                                   +743  +5.3%
      [NEW]    +301 waiting_for_pick_batches_fail(grpc_call_element*, grpc_error*) [clone .isra.6]          +301  [NEW]
       +31%    +300 cc_init_channel_elem                                                                    +300   +31%
       +13%    +104 start_transport_op_locked                                                               +104   +13%
      +3.5%     +98 on_resolver_result_changed_locked                                                        +98  +3.5%
      +489%     +88 shutdown_resolver_locked                                                                 +88  +489%
      [NEW]     +85 grpc_core::Resolver::Orphan                                                              +85  [NEW]
      [NEW]     +50 grpc_core::Resolver::ShutdownLocked                                                      +50  [NEW]
      +3.8%     +11 [Unmapped]                                                                               +11  +3.8%
      +2.6%      +7 cc_destroy_channel_elem                                                                   +7  +2.6%
   +48%    +640 src/core/ext/filters/client_channel/resolver_registry.cc                                +640   +48%
      [NEW]    +446 grpc_core::ResolverRegistry::RegisterResolverFactory                                    +446  [NEW]
      [NEW]    +293 grpc_core::ResolverRegistry::FindFactory                                                +293  [NEW]
      [NEW]    +187 grpc_core::ResolverRegistry::~ResolverRegistry                                          +187  [NEW]
      [NEW]    +177 grpc_core::ResolverRegistry::LookupResolverFactory                                      +177  [NEW]
      [NEW]    +175 grpc_core::ResolverRegistry::GetDefaultAuthority                                        +175  [NEW]
      [NEW]    +168 grpc_core::ResolverRegistry::CreateResolver                                             +168  [NEW]
      [NEW]    +136 grpc_core::ResolverRegistry::SetDefaultPrefix                                           +136  [NEW]
      [NEW]    +135 grpc_core::ResolverRegistry::AddDefaultPrefixIfNeeded                                   +135  [NEW]
      [NEW]     +58 grpc_core::ResolverRegistry::ResolverRegistry                                            +58  [NEW]
      [NEW]     +37 grpc_core::ResolverRegistry::Shutdown                                                    +37  [NEW]
      [NEW]     +36 grpc_core::ResolverRegistry::Init                                                        +36  [NEW]
      [NEW]     +32 grpc_core::ResolverFactory::GetDefaultAuthority(grpc_uri*) const                         +32  [NEW]
       +18%     +13 [Unmapped]                                                                               +13   +18%
      [NEW]      +8 grpc_core::ResolverRegistry::Global                                                       +8  [NEW]
   +35%    +448 src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc              +448   +35%
      [NEW]    +668 grpc_core::(anonymous namespace)::CreateSockaddrResolver                                +668  [NEW]
      +407%    +179 grpc_resolver_sockaddr_init                                                             +179  +407%
      [NEW]    +175 grpc_core::(anonymous namespace)::SockaddrResolver::ShutdownLocked                      +175  [NEW]
      [NEW]    +142 grpc_core::(anonymous namespace)::SockaddrResolver::MaybeFinishNextLocked() [clone .    +142  [NEW]
      [NEW]     +84 grpc_core::(anonymous namespace)::SockaddrResolver::NextLocked                           +84  [NEW]
      [NEW]     +69 grpc_core::(anonymous namespace)::IPv4ResolverFactory::CreateResolver(grpc_core::Res     +69  [NEW]
      [NEW]     +69 grpc_core::(anonymous namespace)::IPv6ResolverFactory::CreateResolver(grpc_core::Res     +69  [NEW]
      [NEW]     +69 grpc_core::(anonymous namespace)::UnixResolverFactory::CreateResolver(grpc_core::Res     +69  [NEW]
      [NEW]     +41 grpc_core::(anonymous namespace)::SockaddrResolver::~SockaddrResolver                    +41  [NEW]
      [NEW]     +24 grpc_core::(anonymous namespace)::UnixResolverFactory::GetDefaultAuthority(grpc_uri*     +24  [NEW]
      [NEW]     +18 grpc_core::(anonymous namespace)::SockaddrResolver::ChannelSawErrorLocked                +18  [NEW]
      [NEW]     +14 grpc_core::(anonymous namespace)::SockaddrResolver::~SockaddrResolver                    +14  [NEW]
       +11%     +12 [Unmapped]                                                                               +12   +11%
      [NEW]      +8 grpc_core::(anonymous namespace)::IPv4ResolverFactory::scheme() const                     +8  [NEW]
      [NEW]      +8 grpc_core::(anonymous namespace)::IPv6ResolverFactory::scheme() const                     +8  [NEW]
      [NEW]      +8 grpc_core::(anonymous namespace)::UnixResolverFactory::scheme() const                     +8  [NEW]
      [NEW]      +2 grpc_core::(anonymous namespace)::DoNothing                                               +2  [NEW]
  +5.5%    +192 src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc            +192  +5.5%
      [NEW] +1.66Ki grpc_core::(anonymous namespace)::AresDnsResolver::OnResolvedLocked                  +1.66Ki  [NEW]
      [NEW]    +499 grpc_core::(anonymous namespace)::AresDnsResolverFactory::CreateResolver(grpc_core::    +499  [NEW]
      [NEW]    +231 grpc_core::(anonymous namespace)::AresDnsResolver::ShutdownLocked                       +231  [NEW]
      [NEW]    +169 grpc_core::(anonymous namespace)::AresDnsResolver::MaybeFinishNextLocked                +169  [NEW]
      [NEW]    +167 grpc_core::(anonymous namespace)::AresDnsResolver::StartResolvingLocked                 +167  [NEW]
      [NEW]    +163 grpc_core::(anonymous namespace)::AresDnsResolver::NextLocked                           +163  [NEW]
       +96%    +116 grpc_resolver_dns_ares_init                                                             +116   +96%
      [NEW]    +104 grpc_core::(anonymous namespace)::AresDnsResolver::~AresDnsResolver                     +104  [NEW]
      [NEW]     +84 grpc_core::(anonymous namespace)::ValueInJsonArray(grpc_json*, char const*) [clone .     +84  [NEW]
      [NEW]     +72 grpc_core::(anonymous namespace)::AresDnsResolver::OnRetryTimerLocked                    +72  [NEW]
      [NEW]     +41 grpc_core::(anonymous namespace)::AresDnsResolver::ChannelSawErrorLocked                 +41  [NEW]
      [NEW]     +14 grpc_core::(anonymous namespace)::AresDnsResolver::~AresDnsResolver                      +14  [NEW]
      [NEW]      +8 grpc_core::(anonymous namespace)::AresDnsResolverFactory::scheme() const                  +8  [NEW]
   +98%    +163 src/core/ext/filters/client_channel/resolver.cc                                         +163   +98%
      [NEW]     +82 grpc_core::Resolver::Resolver                                                            +82  [NEW]
      [NEW]     +47 grpc_core::Orphanable::Orphan                                                            +47  [NEW]
      [NEW]     +47 grpc_core::Resolver::NextLocked                                                          +47  [NEW]
      [NEW]     +47 grpc_core::Resolver::ShutdownLocked                                                      +47  [NEW]
      [NEW]     +47 grpc_core::Resolver::ChannelSawErrorLocked                                               +47  [NEW]
      [NEW]     +23 grpc_core::Resolver::~Resolver                                                           +23  [NEW]
      [NEW]     +14 grpc_core::Resolver::~Resolver                                                           +14  [NEW]
      [NEW]      +9 grpc_core::InternallyRefCountedWithTracing::~InternallyRefCountedWithTracing              +9  [NEW]
      [NEW]      +2 grpc_core::InternallyRefCountedWithTracing::~InternallyRefCountedWithTracing              +2  [NEW]
  +7.6%    +160 src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc                 +160  +7.6%
      [NEW]    +735 grpc_core::(anonymous namespace)::NativeDnsResolver::OnResolvedLocked                   +735  [NEW]
      [NEW]    +382 grpc_core::(anonymous namespace)::NativeDnsResolverFactory::CreateResolver(grpc_core    +382  [NEW]
      [NEW]    +191 grpc_core::(anonymous namespace)::NativeDnsResolver::ShutdownLocked                     +191  [NEW]
      [NEW]    +180 grpc_core::(anonymous namespace)::NativeDnsResolver::StartResolvingLocked               +180  [NEW]
       +87%    +132 grpc_resolver_dns_native_init                                                           +132   +87%
      [NEW]    +121 grpc_core::(anonymous namespace)::NativeDnsResolver::MaybeFinishNextLocked              +121  [NEW]
      [NEW]    +112 grpc_core::(anonymous namespace)::NativeDnsResolver::NextLocked                         +112  [NEW]
      [NEW]     +69 grpc_core::(anonymous namespace)::NativeDnsResolver::OnRetryTimerLocked                  +69  [NEW]
      [NEW]     +64 grpc_core::(anonymous namespace)::NativeDnsResolver::~NativeDnsResolver                  +64  [NEW]
      [NEW]     +41 grpc_core::(anonymous namespace)::NativeDnsResolver::ChannelSawErrorLocked               +41  [NEW]
      [NEW]     +14 grpc_core::(anonymous namespace)::NativeDnsResolver::~NativeDnsResolver                  +14  [NEW]
      [NEW]      +8 grpc_core::(anonymous namespace)::NativeDnsResolverFactory::scheme() const                +8  [NEW]
  +1.1%    +150 src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc                          +150  +1.1%
      [NEW] +1.36Ki query_for_backends_locked(glb_lb_policy*) [clone .part.14]                           +1.36Ki  [NEW]
      [NEW]    +801 build_lb_channel_args(grpc_lb_addresses const*, grpc_core::FakeResolverResponseGener    +801  [NEW]
       +13%    +126 glb_create                                                                              +126   +13%
      +3.0%     +11 [Unmapped]                                                                               +11  +3.0%
      [NEW]      +9 grpc_core::RefCounted::~RefCounted                                                        +9  [NEW]
      [NEW]      +9 grpc_core::FakeResolverResponseGenerator::~FakeResolverResponseGenerator                  +9  [NEW]
      [NEW]      +2 grpc_core::RefCounted::~RefCounted                                                        +2  [NEW]
      [NEW]      +2 grpc_core::FakeResolverResponseGenerator::~FakeResolverResponseGenerator                  +2  [NEW]
  +8.0%     +96 src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc                       +96  +8.0%
      [NEW]    +175 grpc_core::FakeResolver::ShutdownLocked                                                 +175  [NEW]
      [NEW]    +139 grpc_core::FakeResolverResponseGenerator::SetResponse                                   +139  [NEW]
      [NEW]    +113 grpc_core::FakeResolver::FakeResolver                                                   +113  [NEW]
      [NEW]    +105 grpc_core::FakeResolver::MaybeFinishNextLocked                                          +105  [NEW]
      +775%     +93 grpc_resolver_fake_init                                                                  +93  +775%
      [NEW]     +91 grpc_core::FakeResolverResponseGenerator::SetResponseLocked                              +91  [NEW]
      [NEW]     +67 grpc_core::FakeResolver::NextLocked                                                      +67  [NEW]
      [NEW]     +54 grpc_core::FakeResolver::~FakeResolver                                                   +54  [NEW]
      [NEW]     +52 grpc_core::FakeResolverResponseGenerator::GetFromArgs                                    +52  [NEW]
      [NEW]     +51 grpc_core::FakeResolver::ChannelSawErrorLocked                                           +51  [NEW]
      [NEW]     +51 grpc_core::(anonymous namespace)::FakeResolverFactory::CreateResolver(grpc_core::Res     +51  [NEW]
      [NEW]     +41 grpc_core::(anonymous namespace)::response_generator_arg_destroy                         +41  [NEW]
      [NEW]     +36 grpc_core::FakeResolverResponseGenerator::MakeChannelArg                                 +36  [NEW]
      [NEW]     +18 grpc_core::(anonymous namespace)::response_generator_arg_copy                            +18  [NEW]
      [NEW]     +17 grpc_core::(anonymous namespace)::response_generator_cmp                                 +17  [NEW]
      [NEW]     +14 grpc_core::FakeResolver::~FakeResolver                                                   +14  [NEW]
      [NEW]      +8 grpc_core::(anonymous namespace)::FakeResolverFactory::scheme() const                     +8  [NEW]
   +12%     +48 src/core/ext/filters/client_channel/client_channel_plugin.cc                             +48   +12%
       +13%     +34 set_default_host_if_unset                                                                +34   +13%
      +100%     +14 [Unmapped]                                                                               +14  +100%
  +2.0%     +16 src/core/ext/transport/chttp2/client/insecure/channel_create.cc                          +16  +2.0%
       +11%     +24 client_channel_factory_create_channel                                                    +24   +11%
  +0.9%     +16 src/core/ext/transport/chttp2/client/secure/secure_channel_create.cc                     +16  +0.9%
       +11%     +24 client_channel_factory_create_channel                                                    +24   +11%

 -------------- SHRINKING                                                                            --------------
  [DEL]     -83 src/core/ext/filters/client_channel/resolver_factory.cc                                  -83  [DEL]
      [DEL]     -34 [Unmapped]                                                                               -34  [DEL]
      [DEL]     -19 grpc_resolver_factory_create_resolver                                                    -19  [DEL]
      [DEL]     -19 grpc_resolver_factory_get_default_authority                                              -19  [DEL]
      [DEL]      -6 grpc_resolver_factory_unref                                                               -6  [DEL]
      [DEL]      -5 grpc_resolver_factory_ref                                                                 -5  [DEL]

  +0.4% +4.90Ki TOTAL                                                                                 +312Ki  +4.9%


****************************************************************

libgrpc++.so

     VM SIZE        FILE SIZE
 ++++++++++++++  ++++++++++++++

  [ = ]       0        0  [ = ]



@grpc-testing
Copy link
Copy Markdown

[trickle] No significant performance differences

@grpc-testing
Copy link
Copy Markdown

[microbenchmarks] Performance differences noted:
Benchmark                           cpu_time    real_time
----------------------------------  ----------  -----------
BM_ClosureInitAgainstCombiner       -33%        -33%
BM_ErrorGetStatusCode<SimpleError>  -4%         -4%

@grpc-testing
Copy link
Copy Markdown

****************************************************************

libgrpc.so

     VM SIZE                                                                                            FILE SIZE
 ++++++++++++++ GROWING                                                                              ++++++++++++++
  +0.6% +3.48Ki [None]                                                                                +319Ki  +5.5%
      +0.6% +3.26Ki [Unmapped]                                                                            +319Ki  +5.5%
      [NEW]     +64 vtable for grpc_core::FakeResolver                                                       +64  [NEW]
      [NEW]     +64 vtable for grpc_core::(anonymous namespace)::AresDnsResolver                             +64  [NEW]
      [NEW]     +64 vtable for grpc_core::(anonymous namespace)::SockaddrResolver                            +64  [NEW]
      [NEW]     +64 vtable for grpc_core::(anonymous namespace)::NativeDnsResolver                           +64  [NEW]
      [NEW]     +64 vtable for grpc_core::Resolver                                                           +64  [NEW]
      [NEW]     +56 vtable for grpc_core::(anonymous namespace)::FakeResolverFactory                         +56  [NEW]
      [NEW]     +56 vtable for grpc_core::(anonymous namespace)::IPv4ResolverFactory                         +56  [NEW]
      [NEW]     +56 vtable for grpc_core::(anonymous namespace)::IPv6ResolverFactory                         +56  [NEW]
      [NEW]     +56 vtable for grpc_core::(anonymous namespace)::UnixResolverFactory                         +56  [NEW]
      [NEW]     +56 vtable for grpc_core::(anonymous namespace)::AresDnsResolverFactory                      +56  [NEW]
      [NEW]     +56 vtable for grpc_core::(anonymous namespace)::NativeDnsResolverFactory                    +56  [NEW]
      [NEW]     +40 vtable for grpc_core::InternallyRefCountedWithTracing                                    +40  [NEW]
      [NEW]     +32 vtable for grpc_core::RefCounted                                                         +32  [NEW]
      [NEW]     +32 vtable for grpc_core::FakeResolverResponseGenerator                                      +32  [NEW]
      [NEW]     +32 grpc_lb_policy_grpclb_build_lb_channel_args(grpc_slice_hash_table*, grpc_core::FakeR     +32  [NEW]
      [NEW]     +24 grpc_core::(anonymous namespace)::response_generator_arg_vtable                          +24  [NEW]
      [NEW]     +16 grpc_core::(anonymous namespace)::AresDnsResolver::OnResolvedLocked(void*, grpc_erro       0  [ = ]
      [NEW]     +12 grpc_core::(anonymous namespace)::kDefaultPort                                           +12  [NEW]
      [NEW]      +8 grpc_core::g_registry                                                                      0  [ = ]
   +56%    +747 src/core/ext/filters/client_channel/resolver_registry.cc                                +747   +56%
      [NEW]    +477 grpc_core::ResolverRegistry::RegisterResolverFactory                                    +477  [NEW]
      [NEW]    +293 grpc_core::ResolverRegistry::FindFactory                                                +293  [NEW]
      [NEW]    +247 grpc_core::ResolverRegistry::~ResolverRegistry                                          +247  [NEW]
      [NEW]    +177 grpc_core::ResolverRegistry::LookupResolverFactory                                      +177  [NEW]
      [NEW]    +175 grpc_core::ResolverRegistry::GetDefaultAuthority                                        +175  [NEW]
      [NEW]    +168 grpc_core::ResolverRegistry::CreateResolver                                             +168  [NEW]
      [NEW]    +136 grpc_core::ResolverRegistry::SetDefaultPrefix                                           +136  [NEW]
      [NEW]    +135 grpc_core::ResolverRegistry::AddDefaultPrefixIfNeeded                                   +135  [NEW]
      [NEW]     +58 grpc_core::ResolverRegistry::ResolverRegistry                                            +58  [NEW]
      [NEW]     +37 grpc_core::ResolverRegistry::Shutdown                                                    +37  [NEW]
      [NEW]     +36 grpc_core::ResolverRegistry::Init                                                        +36  [NEW]
      [NEW]     +32 grpc_core::ResolverFactory::GetDefaultAuthority(grpc_uri*) const                         +32  [NEW]
       +24%     +18 [Unmapped]                                                                               +18   +24%
      [NEW]      +9 grpc_core::ResolverFactory::~ResolverFactory                                              +9  [NEW]
      [NEW]      +8 grpc_core::ResolverRegistry::Global                                                       +8  [NEW]
      [NEW]      +2 grpc_core::ResolverFactory::~ResolverFactory                                              +2  [NEW]
  +5.3%    +743 src/core/ext/filters/client_channel/client_channel.cc                                   +743  +5.3%
      [NEW]    +301 waiting_for_pick_batches_fail(grpc_call_element*, grpc_error*) [clone .isra.6]          +301  [NEW]
       +31%    +300 cc_init_channel_elem                                                                    +300   +31%
       +13%    +104 start_transport_op_locked                                                               +104   +13%
      +3.5%     +98 on_resolver_result_changed_locked                                                        +98  +3.5%
      +489%     +88 shutdown_resolver_locked                                                                 +88  +489%
      [NEW]     +85 grpc_core::Resolver::Orphan                                                              +85  [NEW]
      [NEW]     +50 grpc_core::Resolver::ShutdownLocked                                                      +50  [NEW]
      +3.8%     +11 [Unmapped]                                                                               +11  +3.8%
      +2.6%      +7 cc_destroy_channel_elem                                                                   +7  +2.6%
   +46%    +592 src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc              +592   +46%
      [NEW]    +668 grpc_core::(anonymous namespace)::CreateSockaddrResolver                                +668  [NEW]
      +498%    +219 grpc_resolver_sockaddr_init                                                             +219  +498%
      [NEW]    +175 grpc_core::(anonymous namespace)::SockaddrResolver::ShutdownLocked                      +175  [NEW]
      [NEW]    +142 grpc_core::(anonymous namespace)::SockaddrResolver::MaybeFinishNextLocked() [clone .    +142  [NEW]
      [NEW]     +84 grpc_core::(anonymous namespace)::SockaddrResolver::NextLocked                           +84  [NEW]
       +75%     +83 [Unmapped]                                                                               +83   +75%
      [NEW]     +69 grpc_core::(anonymous namespace)::IPv4ResolverFactory::CreateResolver(grpc_core::Res     +69  [NEW]
      [NEW]     +69 grpc_core::(anonymous namespace)::IPv6ResolverFactory::CreateResolver(grpc_core::Res     +69  [NEW]
      [NEW]     +69 grpc_core::(anonymous namespace)::UnixResolverFactory::CreateResolver(grpc_core::Res     +69  [NEW]
      [NEW]     +41 grpc_core::(anonymous namespace)::SockaddrResolver::~SockaddrResolver                    +41  [NEW]
      [NEW]     +24 grpc_core::(anonymous namespace)::UnixResolverFactory::GetDefaultAuthority(grpc_uri*     +24  [NEW]
      [NEW]     +18 grpc_core::(anonymous namespace)::SockaddrResolver::ChannelSawErrorLocked                +18  [NEW]
      [NEW]     +14 grpc_core::(anonymous namespace)::SockaddrResolver::~SockaddrResolver                    +14  [NEW]
      [NEW]      +9 grpc_core::(anonymous namespace)::IPv4ResolverFactory::~IPv4ResolverFactory               +9  [NEW]
      [NEW]      +9 grpc_core::(anonymous namespace)::IPv6ResolverFactory::~IPv6ResolverFactory               +9  [NEW]
      [NEW]      +9 grpc_core::(anonymous namespace)::UnixResolverFactory::~UnixResolverFactory               +9  [NEW]
      [NEW]      +8 grpc_core::(anonymous namespace)::IPv4ResolverFactory::scheme() const                     +8  [NEW]
      [NEW]      +8 grpc_core::(anonymous namespace)::IPv6ResolverFactory::scheme() const                     +8  [NEW]
      [NEW]      +8 grpc_core::(anonymous namespace)::UnixResolverFactory::scheme() const                     +8  [NEW]
      [NEW]      +6 [Other]                                                                                   +6  [NEW]
      [NEW]      +2 grpc_core::(anonymous namespace)::IPv4ResolverFactory::~IPv4ResolverFactory               +2  [NEW]
  +6.9%    +240 src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc            +240  +6.9%
      [NEW] +1.66Ki grpc_core::(anonymous namespace)::AresDnsResolver::OnResolvedLocked                  +1.66Ki  [NEW]
      [NEW]    +499 grpc_core::(anonymous namespace)::AresDnsResolverFactory::CreateResolver(grpc_core::    +499  [NEW]
      [NEW]    +231 grpc_core::(anonymous namespace)::AresDnsResolver::ShutdownLocked                       +231  [NEW]
      [NEW]    +169 grpc_core::(anonymous namespace)::AresDnsResolver::MaybeFinishNextLocked                +169  [NEW]
      [NEW]    +167 grpc_core::(anonymous namespace)::AresDnsResolver::StartResolvingLocked                 +167  [NEW]
      [NEW]    +163 grpc_core::(anonymous namespace)::AresDnsResolver::NextLocked                           +163  [NEW]
      +107%    +129 grpc_resolver_dns_ares_init                                                             +129  +107%
      [NEW]    +104 grpc_core::(anonymous namespace)::AresDnsResolver::~AresDnsResolver                     +104  [NEW]
      [NEW]     +84 grpc_core::(anonymous namespace)::ValueInJsonArray(grpc_json*, char const*) [clone .     +84  [NEW]
      [NEW]     +72 grpc_core::(anonymous namespace)::AresDnsResolver::OnRetryTimerLocked                    +72  [NEW]
      [NEW]     +41 grpc_core::(anonymous namespace)::AresDnsResolver::ChannelSawErrorLocked                 +41  [NEW]
      [NEW]     +14 grpc_core::(anonymous namespace)::AresDnsResolver::~AresDnsResolver                      +14  [NEW]
      +8.1%     +10 [Unmapped]                                                                               +10  +8.1%
      [NEW]      +9 grpc_core::(anonymous namespace)::AresDnsResolverFactory::~AresDnsResolverFactory         +9  [NEW]
      [NEW]      +8 grpc_core::(anonymous namespace)::AresDnsResolverFactory::scheme() const                  +8  [NEW]
      [NEW]      +2 grpc_core::(anonymous namespace)::AresDnsResolverFactory::~AresDnsResolverFactory         +2  [NEW]
  +9.9%    +208 src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc                 +208  +9.9%
      [NEW]    +735 grpc_core::(anonymous namespace)::NativeDnsResolver::OnResolvedLocked                   +735  [NEW]
      [NEW]    +382 grpc_core::(anonymous namespace)::NativeDnsResolverFactory::CreateResolver(grpc_core    +382  [NEW]
      [NEW]    +191 grpc_core::(anonymous namespace)::NativeDnsResolver::ShutdownLocked                     +191  [NEW]
      [NEW]    +180 grpc_core::(anonymous namespace)::NativeDnsResolver::StartResolvingLocked               +180  [NEW]
       +97%    +148 grpc_resolver_dns_native_init                                                           +148   +97%
      [NEW]    +121 grpc_core::(anonymous namespace)::NativeDnsResolver::MaybeFinishNextLocked              +121  [NEW]
      [NEW]    +112 grpc_core::(anonymous namespace)::NativeDnsResolver::NextLocked                         +112  [NEW]
      [NEW]     +69 grpc_core::(anonymous namespace)::NativeDnsResolver::OnRetryTimerLocked                  +69  [NEW]
      [NEW]     +64 grpc_core::(anonymous namespace)::NativeDnsResolver::~NativeDnsResolver                  +64  [NEW]
      [NEW]     +41 grpc_core::(anonymous namespace)::NativeDnsResolver::ChannelSawErrorLocked               +41  [NEW]
      [NEW]     +14 grpc_core::(anonymous namespace)::NativeDnsResolver::~NativeDnsResolver                  +14  [NEW]
      [NEW]      +9 grpc_core::(anonymous namespace)::NativeDnsResolverFactory::~NativeDnsResolverFactor      +9  [NEW]
      [NEW]      +8 grpc_core::(anonymous namespace)::NativeDnsResolverFactory::scheme() const                +8  [NEW]
      [NEW]      +2 grpc_core::(anonymous namespace)::NativeDnsResolverFactory::~NativeDnsResolverFactor      +2  [NEW]
   +98%    +163 src/core/ext/filters/client_channel/resolver.cc                                         +163   +98%
      [NEW]     +82 grpc_core::Resolver::Resolver                                                            +82  [NEW]
      [NEW]     +47 grpc_core::Orphanable::Orphan                                                            +47  [NEW]
      [NEW]     +47 grpc_core::Resolver::NextLocked                                                          +47  [NEW]
      [NEW]     +47 grpc_core::Resolver::ShutdownLocked                                                      +47  [NEW]
      [NEW]     +47 grpc_core::Resolver::ChannelSawErrorLocked                                               +47  [NEW]
      [NEW]     +23 grpc_core::Resolver::~Resolver                                                           +23  [NEW]
      [NEW]     +14 grpc_core::Resolver::~Resolver                                                           +14  [NEW]
      [NEW]      +9 grpc_core::InternallyRefCountedWithTracing::~InternallyRefCountedWithTracing              +9  [NEW]
      [NEW]      +2 grpc_core::InternallyRefCountedWithTracing::~InternallyRefCountedWithTracing              +2  [NEW]
  +1.1%    +150 src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc                          +150  +1.1%
      [NEW] +1.36Ki query_for_backends_locked(glb_lb_policy*) [clone .part.14]                           +1.36Ki  [NEW]
      [NEW]    +801 build_lb_channel_args(grpc_lb_addresses const*, grpc_core::FakeResolverResponseGener    +801  [NEW]
       +13%    +126 glb_create                                                                              +126   +13%
      +3.0%     +11 [Unmapped]                                                                               +11  +3.0%
      [NEW]      +9 grpc_core::RefCounted::~RefCounted                                                        +9  [NEW]
      [NEW]      +9 grpc_core::FakeResolverResponseGenerator::~FakeResolverResponseGenerator                  +9  [NEW]
      [NEW]      +2 grpc_core::RefCounted::~RefCounted                                                        +2  [NEW]
      [NEW]      +2 grpc_core::FakeResolverResponseGenerator::~FakeResolverResponseGenerator                  +2  [NEW]
   +12%    +144 src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc                      +144   +12%
      [NEW]    +175 grpc_core::FakeResolver::ShutdownLocked                                                 +175  [NEW]
      [NEW]    +139 grpc_core::FakeResolverResponseGenerator::SetResponse                                   +139  [NEW]
      [NEW]    +113 grpc_core::FakeResolver::FakeResolver                                                   +113  [NEW]
      +892%    +107 grpc_resolver_fake_init                                                                 +107  +892%
      [NEW]    +105 grpc_core::FakeResolver::MaybeFinishNextLocked                                          +105  [NEW]
      [NEW]     +91 grpc_core::FakeResolverResponseGenerator::SetResponseLocked                              +91  [NEW]
      [NEW]     +67 grpc_core::FakeResolver::NextLocked                                                      +67  [NEW]
      [NEW]     +54 grpc_core::FakeResolver::~FakeResolver                                                   +54  [NEW]
      [NEW]     +52 grpc_core::FakeResolverResponseGenerator::GetFromArgs                                    +52  [NEW]
      [NEW]     +51 grpc_core::FakeResolver::ChannelSawErrorLocked                                           +51  [NEW]
      [NEW]     +51 grpc_core::(anonymous namespace)::FakeResolverFactory::CreateResolver(grpc_core::Res     +51  [NEW]
      [NEW]     +41 grpc_core::(anonymous namespace)::response_generator_arg_destroy                         +41  [NEW]
      [NEW]     +36 grpc_core::FakeResolverResponseGenerator::MakeChannelArg                                 +36  [NEW]
      [NEW]     +18 grpc_core::(anonymous namespace)::response_generator_arg_copy                            +18  [NEW]
      [NEW]     +17 grpc_core::(anonymous namespace)::response_generator_cmp                                 +17  [NEW]
      [NEW]     +14 grpc_core::FakeResolver::~FakeResolver                                                   +14  [NEW]
      [NEW]      +9 grpc_core::(anonymous namespace)::FakeResolverFactory::~FakeResolverFactory               +9  [NEW]
      [NEW]      +8 grpc_core::(anonymous namespace)::FakeResolverFactory::scheme() const                     +8  [NEW]
      [NEW]      +2 grpc_core::(anonymous namespace)::FakeResolverFactory::~FakeResolverFactory               +2  [NEW]
   +12%     +48 src/core/ext/filters/client_channel/client_channel_plugin.cc                             +48   +12%
       +13%     +34 set_default_host_if_unset                                                                +34   +13%
      +100%     +14 [Unmapped]                                                                               +14  +100%
  +2.0%     +16 src/core/ext/transport/chttp2/client/insecure/channel_create.cc                          +16  +2.0%
       +11%     +24 client_channel_factory_create_channel                                                    +24   +11%
  +0.9%     +16 src/core/ext/transport/chttp2/client/secure/secure_channel_create.cc                     +16  +0.9%
       +11%     +24 client_channel_factory_create_channel                                                    +24   +11%

 -------------- SHRINKING                                                                            --------------
  [DEL]     -83 src/core/ext/filters/client_channel/resolver_factory.cc                                  -83  [DEL]
      [DEL]     -34 [Unmapped]                                                                               -34  [DEL]
      [DEL]     -19 grpc_resolver_factory_create_resolver                                                    -19  [DEL]
      [DEL]     -19 grpc_resolver_factory_get_default_authority                                              -19  [DEL]
      [DEL]      -6 grpc_resolver_factory_unref                                                               -6  [DEL]
      [DEL]      -5 grpc_resolver_factory_ref                                                                 -5  [DEL]

  +0.5% +6.40Ki TOTAL                                                                                 +322Ki  +5.0%


****************************************************************

libgrpc++.so

     VM SIZE        FILE SIZE
 ++++++++++++++  ++++++++++++++

  [ = ]       0        0  [ = ]



@grpc-testing
Copy link
Copy Markdown

[trickle] No significant performance differences

@grpc-testing
Copy link
Copy Markdown

[microbenchmarks] No significant performance differences

@grpc-testing
Copy link
Copy Markdown

****************************************************************

libgrpc.so

     VM SIZE                                                                                            FILE SIZE
 ++++++++++++++ GROWING                                                                              ++++++++++++++
  +0.6% +3.48Ki [None]                                                                                +319Ki  +5.5%
      +0.6% +3.26Ki [Unmapped]                                                                            +319Ki  +5.5%
      [NEW]     +64 vtable for grpc_core::FakeResolver                                                       +64  [NEW]
      [NEW]     +64 vtable for grpc_core::(anonymous namespace)::AresDnsResolver                             +64  [NEW]
      [NEW]     +64 vtable for grpc_core::(anonymous namespace)::SockaddrResolver                            +64  [NEW]
      [NEW]     +64 vtable for grpc_core::(anonymous namespace)::NativeDnsResolver                           +64  [NEW]
      [NEW]     +64 vtable for grpc_core::Resolver                                                           +64  [NEW]
      [NEW]     +56 vtable for grpc_core::(anonymous namespace)::FakeResolverFactory                         +56  [NEW]
      [NEW]     +56 vtable for grpc_core::(anonymous namespace)::IPv4ResolverFactory                         +56  [NEW]
      [NEW]     +56 vtable for grpc_core::(anonymous namespace)::IPv6ResolverFactory                         +56  [NEW]
      [NEW]     +56 vtable for grpc_core::(anonymous namespace)::UnixResolverFactory                         +56  [NEW]
      [NEW]     +56 vtable for grpc_core::(anonymous namespace)::AresDnsResolverFactory                      +56  [NEW]
      [NEW]     +56 vtable for grpc_core::(anonymous namespace)::NativeDnsResolverFactory                    +56  [NEW]
      [NEW]     +40 vtable for grpc_core::InternallyRefCountedWithTracing                                    +40  [NEW]
      [NEW]     +32 vtable for grpc_core::RefCounted                                                         +32  [NEW]
      [NEW]     +32 vtable for grpc_core::FakeResolverResponseGenerator                                      +32  [NEW]
      [NEW]     +32 grpc_lb_policy_grpclb_build_lb_channel_args(grpc_slice_hash_table*, grpc_core::FakeR     +32  [NEW]
      [NEW]     +24 grpc_core::(anonymous namespace)::response_generator_arg_vtable                          +24  [NEW]
      [NEW]     +16 grpc_core::(anonymous namespace)::AresDnsResolver::OnResolvedLocked(void*, grpc_erro       0  [ = ]
      [NEW]     +12 grpc_core::(anonymous namespace)::kDefaultPort                                           +12  [NEW]
      [NEW]      +8 grpc_core::g_registry                                                                      0  [ = ]
   +56%    +747 src/core/ext/filters/client_channel/resolver_registry.cc                                +747   +56%
      [NEW]    +477 grpc_core::ResolverRegistry::RegisterResolverFactory                                    +477  [NEW]
      [NEW]    +293 grpc_core::ResolverRegistry::FindFactory                                                +293  [NEW]
      [NEW]    +247 grpc_core::ResolverRegistry::~ResolverRegistry                                          +247  [NEW]
      [NEW]    +177 grpc_core::ResolverRegistry::LookupResolverFactory                                      +177  [NEW]
      [NEW]    +175 grpc_core::ResolverRegistry::GetDefaultAuthority                                        +175  [NEW]
      [NEW]    +168 grpc_core::ResolverRegistry::CreateResolver                                             +168  [NEW]
      [NEW]    +136 grpc_core::ResolverRegistry::SetDefaultPrefix                                           +136  [NEW]
      [NEW]    +135 grpc_core::ResolverRegistry::AddDefaultPrefixIfNeeded                                   +135  [NEW]
      [NEW]     +58 grpc_core::ResolverRegistry::ResolverRegistry                                            +58  [NEW]
      [NEW]     +37 grpc_core::ResolverRegistry::Shutdown                                                    +37  [NEW]
      [NEW]     +36 grpc_core::ResolverRegistry::Init                                                        +36  [NEW]
      [NEW]     +32 grpc_core::ResolverFactory::GetDefaultAuthority(grpc_uri*) const                         +32  [NEW]
       +24%     +18 [Unmapped]                                                                               +18   +24%
      [NEW]      +9 grpc_core::ResolverFactory::~ResolverFactory                                              +9  [NEW]
      [NEW]      +8 grpc_core::ResolverRegistry::Global                                                       +8  [NEW]
      [NEW]      +2 grpc_core::ResolverFactory::~ResolverFactory                                              +2  [NEW]
  +5.3%    +743 src/core/ext/filters/client_channel/client_channel.cc                                   +743  +5.3%
      [NEW]    +301 waiting_for_pick_batches_fail(grpc_call_element*, grpc_error*) [clone .isra.6]          +301  [NEW]
       +31%    +300 cc_init_channel_elem                                                                    +300   +31%
       +13%    +104 start_transport_op_locked                                                               +104   +13%
      +3.5%     +98 on_resolver_result_changed_locked                                                        +98  +3.5%
      +489%     +88 shutdown_resolver_locked                                                                 +88  +489%
      [NEW]     +85 grpc_core::Resolver::Orphan                                                              +85  [NEW]
      [NEW]     +50 grpc_core::Resolver::ShutdownLocked                                                      +50  [NEW]
      +3.8%     +11 [Unmapped]                                                                               +11  +3.8%
      +2.6%      +7 cc_destroy_channel_elem                                                                   +7  +2.6%
   +46%    +592 src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc              +592   +46%
      [NEW]    +668 grpc_core::(anonymous namespace)::CreateSockaddrResolver                                +668  [NEW]
      +498%    +219 grpc_resolver_sockaddr_init                                                             +219  +498%
      [NEW]    +175 grpc_core::(anonymous namespace)::SockaddrResolver::ShutdownLocked                      +175  [NEW]
      [NEW]    +142 grpc_core::(anonymous namespace)::SockaddrResolver::MaybeFinishNextLocked() [clone .    +142  [NEW]
      [NEW]     +84 grpc_core::(anonymous namespace)::SockaddrResolver::NextLocked                           +84  [NEW]
       +75%     +83 [Unmapped]                                                                               +83   +75%
      [NEW]     +69 grpc_core::(anonymous namespace)::IPv4ResolverFactory::CreateResolver(grpc_core::Res     +69  [NEW]
      [NEW]     +69 grpc_core::(anonymous namespace)::IPv6ResolverFactory::CreateResolver(grpc_core::Res     +69  [NEW]
      [NEW]     +69 grpc_core::(anonymous namespace)::UnixResolverFactory::CreateResolver(grpc_core::Res     +69  [NEW]
      [NEW]     +41 grpc_core::(anonymous namespace)::SockaddrResolver::~SockaddrResolver                    +41  [NEW]
      [NEW]     +24 grpc_core::(anonymous namespace)::UnixResolverFactory::GetDefaultAuthority(grpc_uri*     +24  [NEW]
      [NEW]     +18 grpc_core::(anonymous namespace)::SockaddrResolver::ChannelSawErrorLocked                +18  [NEW]
      [NEW]     +14 grpc_core::(anonymous namespace)::SockaddrResolver::~SockaddrResolver                    +14  [NEW]
      [NEW]      +9 grpc_core::(anonymous namespace)::IPv4ResolverFactory::~IPv4ResolverFactory               +9  [NEW]
      [NEW]      +9 grpc_core::(anonymous namespace)::IPv6ResolverFactory::~IPv6ResolverFactory               +9  [NEW]
      [NEW]      +9 grpc_core::(anonymous namespace)::UnixResolverFactory::~UnixResolverFactory               +9  [NEW]
      [NEW]      +8 grpc_core::(anonymous namespace)::IPv4ResolverFactory::scheme() const                     +8  [NEW]
      [NEW]      +8 grpc_core::(anonymous namespace)::IPv6ResolverFactory::scheme() const                     +8  [NEW]
      [NEW]      +8 grpc_core::(anonymous namespace)::UnixResolverFactory::scheme() const                     +8  [NEW]
      [NEW]      +6 [Other]                                                                                   +6  [NEW]
      [NEW]      +2 grpc_core::(anonymous namespace)::IPv4ResolverFactory::~IPv4ResolverFactory               +2  [NEW]
  +6.9%    +240 src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc            +240  +6.9%
      [NEW] +1.66Ki grpc_core::(anonymous namespace)::AresDnsResolver::OnResolvedLocked                  +1.66Ki  [NEW]
      [NEW]    +499 grpc_core::(anonymous namespace)::AresDnsResolverFactory::CreateResolver(grpc_core::    +499  [NEW]
      [NEW]    +231 grpc_core::(anonymous namespace)::AresDnsResolver::ShutdownLocked                       +231  [NEW]
      [NEW]    +169 grpc_core::(anonymous namespace)::AresDnsResolver::MaybeFinishNextLocked                +169  [NEW]
      [NEW]    +167 grpc_core::(anonymous namespace)::AresDnsResolver::StartResolvingLocked                 +167  [NEW]
      [NEW]    +163 grpc_core::(anonymous namespace)::AresDnsResolver::NextLocked                           +163  [NEW]
      +107%    +129 grpc_resolver_dns_ares_init                                                             +129  +107%
      [NEW]    +104 grpc_core::(anonymous namespace)::AresDnsResolver::~AresDnsResolver                     +104  [NEW]
      [NEW]     +84 grpc_core::(anonymous namespace)::ValueInJsonArray(grpc_json*, char const*) [clone .     +84  [NEW]
      [NEW]     +72 grpc_core::(anonymous namespace)::AresDnsResolver::OnRetryTimerLocked                    +72  [NEW]
      [NEW]     +41 grpc_core::(anonymous namespace)::AresDnsResolver::ChannelSawErrorLocked                 +41  [NEW]
      [NEW]     +14 grpc_core::(anonymous namespace)::AresDnsResolver::~AresDnsResolver                      +14  [NEW]
      +8.1%     +10 [Unmapped]                                                                               +10  +8.1%
      [NEW]      +9 grpc_core::(anonymous namespace)::AresDnsResolverFactory::~AresDnsResolverFactory         +9  [NEW]
      [NEW]      +8 grpc_core::(anonymous namespace)::AresDnsResolverFactory::scheme() const                  +8  [NEW]
      [NEW]      +2 grpc_core::(anonymous namespace)::AresDnsResolverFactory::~AresDnsResolverFactory         +2  [NEW]
  +9.9%    +208 src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc                 +208  +9.9%
      [NEW]    +735 grpc_core::(anonymous namespace)::NativeDnsResolver::OnResolvedLocked                   +735  [NEW]
      [NEW]    +382 grpc_core::(anonymous namespace)::NativeDnsResolverFactory::CreateResolver(grpc_core    +382  [NEW]
      [NEW]    +191 grpc_core::(anonymous namespace)::NativeDnsResolver::ShutdownLocked                     +191  [NEW]
      [NEW]    +180 grpc_core::(anonymous namespace)::NativeDnsResolver::StartResolvingLocked               +180  [NEW]
       +97%    +148 grpc_resolver_dns_native_init                                                           +148   +97%
      [NEW]    +121 grpc_core::(anonymous namespace)::NativeDnsResolver::MaybeFinishNextLocked              +121  [NEW]
      [NEW]    +112 grpc_core::(anonymous namespace)::NativeDnsResolver::NextLocked                         +112  [NEW]
      [NEW]     +69 grpc_core::(anonymous namespace)::NativeDnsResolver::OnRetryTimerLocked                  +69  [NEW]
      [NEW]     +64 grpc_core::(anonymous namespace)::NativeDnsResolver::~NativeDnsResolver                  +64  [NEW]
      [NEW]     +41 grpc_core::(anonymous namespace)::NativeDnsResolver::ChannelSawErrorLocked               +41  [NEW]
      [NEW]     +14 grpc_core::(anonymous namespace)::NativeDnsResolver::~NativeDnsResolver                  +14  [NEW]
      [NEW]      +9 grpc_core::(anonymous namespace)::NativeDnsResolverFactory::~NativeDnsResolverFactor      +9  [NEW]
      [NEW]      +8 grpc_core::(anonymous namespace)::NativeDnsResolverFactory::scheme() const                +8  [NEW]
      [NEW]      +2 grpc_core::(anonymous namespace)::NativeDnsResolverFactory::~NativeDnsResolverFactor      +2  [NEW]
   +98%    +163 src/core/ext/filters/client_channel/resolver.cc                                         +163   +98%
      [NEW]     +82 grpc_core::Resolver::Resolver                                                            +82  [NEW]
      [NEW]     +47 grpc_core::Orphanable::Orphan                                                            +47  [NEW]
      [NEW]     +47 grpc_core::Resolver::NextLocked                                                          +47  [NEW]
      [NEW]     +47 grpc_core::Resolver::ShutdownLocked                                                      +47  [NEW]
      [NEW]     +47 grpc_core::Resolver::ChannelSawErrorLocked                                               +47  [NEW]
      [NEW]     +23 grpc_core::Resolver::~Resolver                                                           +23  [NEW]
      [NEW]     +14 grpc_core::Resolver::~Resolver                                                           +14  [NEW]
      [NEW]      +9 grpc_core::InternallyRefCountedWithTracing::~InternallyRefCountedWithTracing              +9  [NEW]
      [NEW]      +2 grpc_core::InternallyRefCountedWithTracing::~InternallyRefCountedWithTracing              +2  [NEW]
  +1.1%    +150 src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc                          +150  +1.1%
      [NEW] +1.36Ki query_for_backends_locked(glb_lb_policy*) [clone .part.14]                           +1.36Ki  [NEW]
      [NEW]    +801 build_lb_channel_args(grpc_lb_addresses const*, grpc_core::FakeResolverResponseGener    +801  [NEW]
       +13%    +126 glb_create                                                                              +126   +13%
      +3.0%     +11 [Unmapped]                                                                               +11  +3.0%
      [NEW]      +9 grpc_core::RefCounted::~RefCounted                                                        +9  [NEW]
      [NEW]      +9 grpc_core::FakeResolverResponseGenerator::~FakeResolverResponseGenerator                  +9  [NEW]
      [NEW]      +2 grpc_core::RefCounted::~RefCounted                                                        +2  [NEW]
      [NEW]      +2 grpc_core::FakeResolverResponseGenerator::~FakeResolverResponseGenerator                  +2  [NEW]
   +12%    +144 src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc                      +144   +12%
      [NEW]    +175 grpc_core::FakeResolver::ShutdownLocked                                                 +175  [NEW]
      [NEW]    +139 grpc_core::FakeResolverResponseGenerator::SetResponse                                   +139  [NEW]
      [NEW]    +113 grpc_core::FakeResolver::FakeResolver                                                   +113  [NEW]
      +892%    +107 grpc_resolver_fake_init                                                                 +107  +892%
      [NEW]    +105 grpc_core::FakeResolver::MaybeFinishNextLocked                                          +105  [NEW]
      [NEW]     +91 grpc_core::FakeResolverResponseGenerator::SetResponseLocked                              +91  [NEW]
      [NEW]     +67 grpc_core::FakeResolver::NextLocked                                                      +67  [NEW]
      [NEW]     +54 grpc_core::FakeResolver::~FakeResolver                                                   +54  [NEW]
      [NEW]     +52 grpc_core::FakeResolverResponseGenerator::GetFromArgs                                    +52  [NEW]
      [NEW]     +51 grpc_core::FakeResolver::ChannelSawErrorLocked                                           +51  [NEW]
      [NEW]     +51 grpc_core::(anonymous namespace)::FakeResolverFactory::CreateResolver(grpc_core::Res     +51  [NEW]
      [NEW]     +41 grpc_core::(anonymous namespace)::response_generator_arg_destroy                         +41  [NEW]
      [NEW]     +36 grpc_core::FakeResolverResponseGenerator::MakeChannelArg                                 +36  [NEW]
      [NEW]     +18 grpc_core::(anonymous namespace)::response_generator_arg_copy                            +18  [NEW]
      [NEW]     +17 grpc_core::(anonymous namespace)::response_generator_cmp                                 +17  [NEW]
      [NEW]     +14 grpc_core::FakeResolver::~FakeResolver                                                   +14  [NEW]
      [NEW]      +9 grpc_core::(anonymous namespace)::FakeResolverFactory::~FakeResolverFactory               +9  [NEW]
      [NEW]      +8 grpc_core::(anonymous namespace)::FakeResolverFactory::scheme() const                     +8  [NEW]
      [NEW]      +2 grpc_core::(anonymous namespace)::FakeResolverFactory::~FakeResolverFactory               +2  [NEW]
   +12%     +48 src/core/ext/filters/client_channel/client_channel_plugin.cc                             +48   +12%
       +13%     +34 set_default_host_if_unset                                                                +34   +13%
      +100%     +14 [Unmapped]                                                                               +14  +100%
  +2.0%     +16 src/core/ext/transport/chttp2/client/insecure/channel_create.cc                          +16  +2.0%
       +11%     +24 client_channel_factory_create_channel                                                    +24   +11%
  +0.9%     +16 src/core/ext/transport/chttp2/client/secure/secure_channel_create.cc                     +16  +0.9%
       +11%     +24 client_channel_factory_create_channel                                                    +24   +11%

 -------------- SHRINKING                                                                            --------------
  [DEL]     -83 src/core/ext/filters/client_channel/resolver_factory.cc                                  -83  [DEL]
      [DEL]     -34 [Unmapped]                                                                               -34  [DEL]
      [DEL]     -19 grpc_resolver_factory_create_resolver                                                    -19  [DEL]
      [DEL]     -19 grpc_resolver_factory_get_default_authority                                              -19  [DEL]
      [DEL]      -6 grpc_resolver_factory_unref                                                               -6  [DEL]
      [DEL]      -5 grpc_resolver_factory_ref                                                                 -5  [DEL]

  +0.5% +6.40Ki TOTAL                                                                                 +322Ki  +5.0%


****************************************************************

libgrpc++.so

     VM SIZE        FILE SIZE
 ++++++++++++++  ++++++++++++++

  [ = ]       0        0  [ = ]



@grpc-testing
Copy link
Copy Markdown

[trickle] No significant performance differences

@grpc-testing
Copy link
Copy Markdown

[microbenchmarks] No significant performance differences

@grpc-testing
Copy link
Copy Markdown

****************************************************************

libgrpc.so

     VM SIZE                                                                                            FILE SIZE
 ++++++++++++++ GROWING                                                                              ++++++++++++++
  +0.6% +3.48Ki [None]                                                                                +320Ki  +5.5%
      +0.6% +3.26Ki [Unmapped]                                                                            +320Ki  +5.6%
      [NEW]     +64 vtable for grpc_core::FakeResolver                                                       +64  [NEW]
      [NEW]     +64 vtable for grpc_core::(anonymous namespace)::AresDnsResolver                             +64  [NEW]
      [NEW]     +64 vtable for grpc_core::(anonymous namespace)::SockaddrResolver                            +64  [NEW]
      [NEW]     +64 vtable for grpc_core::(anonymous namespace)::NativeDnsResolver                           +64  [NEW]
      [NEW]     +64 vtable for grpc_core::Resolver                                                           +64  [NEW]
      [NEW]     +56 vtable for grpc_core::(anonymous namespace)::FakeResolverFactory                         +56  [NEW]
      [NEW]     +56 vtable for grpc_core::(anonymous namespace)::IPv4ResolverFactory                         +56  [NEW]
      [NEW]     +56 vtable for grpc_core::(anonymous namespace)::IPv6ResolverFactory                         +56  [NEW]
      [NEW]     +56 vtable for grpc_core::(anonymous namespace)::UnixResolverFactory                         +56  [NEW]
      [NEW]     +56 vtable for grpc_core::(anonymous namespace)::AresDnsResolverFactory                      +56  [NEW]
      [NEW]     +56 vtable for grpc_core::(anonymous namespace)::NativeDnsResolverFactory                    +56  [NEW]
      [NEW]     +40 vtable for grpc_core::InternallyRefCountedWithTracing                                    +40  [NEW]
      [NEW]     +32 vtable for grpc_core::RefCounted                                                         +32  [NEW]
      [NEW]     +32 vtable for grpc_core::FakeResolverResponseGenerator                                      +32  [NEW]
      [NEW]     +32 grpc_lb_policy_grpclb_build_lb_channel_args(grpc_slice_hash_table*, grpc_core::FakeR     +32  [NEW]
      [NEW]     +24 grpc_core::(anonymous namespace)::response_generator_arg_vtable                          +24  [NEW]
      [NEW]     +16 grpc_core::(anonymous namespace)::AresDnsResolver::OnResolvedLocked(void*, grpc_erro       0  [ = ]
      [NEW]     +12 grpc_core::(anonymous namespace)::kDefaultPort                                           +12  [NEW]
      [NEW]      +8 grpc_core::g_registry                                                                      0  [ = ]
   +58%    +779 src/core/ext/filters/client_channel/resolver_registry.cc                                +779   +58%
      [NEW]    +477 grpc_core::ResolverRegistry::RegisterResolverFactory                                    +477  [NEW]
      [NEW]    +293 grpc_core::ResolverRegistry::FindFactory                                                +293  [NEW]
      [NEW]    +247 grpc_core::ResolverRegistry::~ResolverRegistry                                          +247  [NEW]
      [NEW]    +191 grpc_core::ResolverRegistry::GetDefaultAuthority                                        +191  [NEW]
      [NEW]    +190 grpc_core::ResolverRegistry::CreateResolver                                             +190  [NEW]
      [NEW]    +177 grpc_core::ResolverRegistry::LookupResolverFactory                                      +177  [NEW]
      [NEW]    +136 grpc_core::ResolverRegistry::SetDefaultPrefix                                           +136  [NEW]
      [NEW]    +135 grpc_core::ResolverRegistry::AddDefaultPrefixIfNeeded                                   +135  [NEW]
      [NEW]     +58 grpc_core::ResolverRegistry::ResolverRegistry                                            +58  [NEW]
      [NEW]     +37 grpc_core::ResolverRegistry::Shutdown                                                    +37  [NEW]
      [NEW]     +36 grpc_core::ResolverRegistry::Init                                                        +36  [NEW]
      [NEW]     +32 grpc_core::ResolverFactory::GetDefaultAuthority(grpc_uri*) const                         +32  [NEW]
       +16%     +12 [Unmapped]                                                                               +12   +16%
      [NEW]      +9 grpc_core::ResolverFactory::~ResolverFactory                                              +9  [NEW]
      [NEW]      +8 grpc_core::ResolverRegistry::Global                                                       +8  [NEW]
      [NEW]      +2 grpc_core::ResolverFactory::~ResolverFactory                                              +2  [NEW]
  +5.3%    +743 src/core/ext/filters/client_channel/client_channel.cc                                   +743  +5.3%
      [NEW]    +301 waiting_for_pick_batches_fail(grpc_call_element*, grpc_error*) [clone .isra.6]          +301  [NEW]
       +31%    +300 cc_init_channel_elem                                                                    +300   +31%
       +13%    +104 start_transport_op_locked                                                               +104   +13%
      +3.5%     +98 on_resolver_result_changed_locked                                                        +98  +3.5%
      +489%     +88 shutdown_resolver_locked                                                                 +88  +489%
      [NEW]     +85 grpc_core::Resolver::Orphan                                                              +85  [NEW]
      [NEW]     +50 grpc_core::Resolver::ShutdownLocked                                                      +50  [NEW]
      +3.8%     +11 [Unmapped]                                                                               +11  +3.8%
      +2.6%      +7 cc_destroy_channel_elem                                                                   +7  +2.6%
   +46%    +592 src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc              +592   +46%
      [NEW]    +668 grpc_core::(anonymous namespace)::CreateSockaddrResolver                                +668  [NEW]
      +498%    +219 grpc_resolver_sockaddr_init                                                             +219  +498%
      [NEW]    +175 grpc_core::(anonymous namespace)::SockaddrResolver::ShutdownLocked                      +175  [NEW]
      [NEW]    +142 grpc_core::(anonymous namespace)::SockaddrResolver::MaybeFinishNextLocked() [clone .    +142  [NEW]
      [NEW]     +84 grpc_core::(anonymous namespace)::SockaddrResolver::NextLocked                           +84  [NEW]
       +75%     +83 [Unmapped]                                                                               +83   +75%
      [NEW]     +69 grpc_core::(anonymous namespace)::IPv4ResolverFactory::CreateResolver(grpc_core::Res     +69  [NEW]
      [NEW]     +69 grpc_core::(anonymous namespace)::IPv6ResolverFactory::CreateResolver(grpc_core::Res     +69  [NEW]
      [NEW]     +69 grpc_core::(anonymous namespace)::UnixResolverFactory::CreateResolver(grpc_core::Res     +69  [NEW]
      [NEW]     +41 grpc_core::(anonymous namespace)::SockaddrResolver::~SockaddrResolver                    +41  [NEW]
      [NEW]     +24 grpc_core::(anonymous namespace)::UnixResolverFactory::GetDefaultAuthority(grpc_uri*     +24  [NEW]
      [NEW]     +18 grpc_core::(anonymous namespace)::SockaddrResolver::ChannelSawErrorLocked                +18  [NEW]
      [NEW]     +14 grpc_core::(anonymous namespace)::SockaddrResolver::~SockaddrResolver                    +14  [NEW]
      [NEW]      +9 grpc_core::(anonymous namespace)::IPv4ResolverFactory::~IPv4ResolverFactory               +9  [NEW]
      [NEW]      +9 grpc_core::(anonymous namespace)::IPv6ResolverFactory::~IPv6ResolverFactory               +9  [NEW]
      [NEW]      +9 grpc_core::(anonymous namespace)::UnixResolverFactory::~UnixResolverFactory               +9  [NEW]
      [NEW]      +8 grpc_core::(anonymous namespace)::IPv4ResolverFactory::scheme() const                     +8  [NEW]
      [NEW]      +8 grpc_core::(anonymous namespace)::IPv6ResolverFactory::scheme() const                     +8  [NEW]
      [NEW]      +8 grpc_core::(anonymous namespace)::UnixResolverFactory::scheme() const                     +8  [NEW]
      [NEW]      +6 [Other]                                                                                   +6  [NEW]
      [NEW]      +2 grpc_core::(anonymous namespace)::IPv4ResolverFactory::~IPv4ResolverFactory               +2  [NEW]
  +6.9%    +240 src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc            +240  +6.9%
      [NEW] +1.66Ki grpc_core::(anonymous namespace)::AresDnsResolver::OnResolvedLocked                  +1.66Ki  [NEW]
      [NEW]    +499 grpc_core::(anonymous namespace)::AresDnsResolverFactory::CreateResolver(grpc_core::    +499  [NEW]
      [NEW]    +231 grpc_core::(anonymous namespace)::AresDnsResolver::ShutdownLocked                       +231  [NEW]
      [NEW]    +169 grpc_core::(anonymous namespace)::AresDnsResolver::MaybeFinishNextLocked                +169  [NEW]
      [NEW]    +167 grpc_core::(anonymous namespace)::AresDnsResolver::StartResolvingLocked                 +167  [NEW]
      [NEW]    +163 grpc_core::(anonymous namespace)::AresDnsResolver::NextLocked                           +163  [NEW]
      +107%    +129 grpc_resolver_dns_ares_init                                                             +129  +107%
      [NEW]    +104 grpc_core::(anonymous namespace)::AresDnsResolver::~AresDnsResolver                     +104  [NEW]
      [NEW]     +84 grpc_core::(anonymous namespace)::ValueInJsonArray(grpc_json*, char const*) [clone .     +84  [NEW]
      [NEW]     +72 grpc_core::(anonymous namespace)::AresDnsResolver::OnRetryTimerLocked                    +72  [NEW]
      [NEW]     +41 grpc_core::(anonymous namespace)::AresDnsResolver::ChannelSawErrorLocked                 +41  [NEW]
      [NEW]     +14 grpc_core::(anonymous namespace)::AresDnsResolver::~AresDnsResolver                      +14  [NEW]
      +8.1%     +10 [Unmapped]                                                                               +10  +8.1%
      [NEW]      +9 grpc_core::(anonymous namespace)::AresDnsResolverFactory::~AresDnsResolverFactory         +9  [NEW]
      [NEW]      +8 grpc_core::(anonymous namespace)::AresDnsResolverFactory::scheme() const                  +8  [NEW]
      [NEW]      +2 grpc_core::(anonymous namespace)::AresDnsResolverFactory::~AresDnsResolverFactory         +2  [NEW]
  +9.9%    +208 src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc                 +208  +9.9%
      [NEW]    +735 grpc_core::(anonymous namespace)::NativeDnsResolver::OnResolvedLocked                   +735  [NEW]
      [NEW]    +382 grpc_core::(anonymous namespace)::NativeDnsResolverFactory::CreateResolver(grpc_core    +382  [NEW]
      [NEW]    +191 grpc_core::(anonymous namespace)::NativeDnsResolver::ShutdownLocked                     +191  [NEW]
      [NEW]    +180 grpc_core::(anonymous namespace)::NativeDnsResolver::StartResolvingLocked               +180  [NEW]
       +97%    +148 grpc_resolver_dns_native_init                                                           +148   +97%
      [NEW]    +121 grpc_core::(anonymous namespace)::NativeDnsResolver::MaybeFinishNextLocked              +121  [NEW]
      [NEW]    +112 grpc_core::(anonymous namespace)::NativeDnsResolver::NextLocked                         +112  [NEW]
      [NEW]     +69 grpc_core::(anonymous namespace)::NativeDnsResolver::OnRetryTimerLocked                  +69  [NEW]
      [NEW]     +64 grpc_core::(anonymous namespace)::NativeDnsResolver::~NativeDnsResolver                  +64  [NEW]
      [NEW]     +41 grpc_core::(anonymous namespace)::NativeDnsResolver::ChannelSawErrorLocked               +41  [NEW]
      [NEW]     +14 grpc_core::(anonymous namespace)::NativeDnsResolver::~NativeDnsResolver                  +14  [NEW]
      [NEW]      +9 grpc_core::(anonymous namespace)::NativeDnsResolverFactory::~NativeDnsResolverFactor      +9  [NEW]
      [NEW]      +8 grpc_core::(anonymous namespace)::NativeDnsResolverFactory::scheme() const                +8  [NEW]
      [NEW]      +2 grpc_core::(anonymous namespace)::NativeDnsResolverFactory::~NativeDnsResolverFactor      +2  [NEW]
   +98%    +163 src/core/ext/filters/client_channel/resolver.cc                                         +163   +98%
      [NEW]     +82 grpc_core::Resolver::Resolver                                                            +82  [NEW]
      [NEW]     +47 grpc_core::Orphanable::Orphan                                                            +47  [NEW]
      [NEW]     +47 grpc_core::Resolver::NextLocked                                                          +47  [NEW]
      [NEW]     +47 grpc_core::Resolver::ShutdownLocked                                                      +47  [NEW]
      [NEW]     +47 grpc_core::Resolver::ChannelSawErrorLocked                                               +47  [NEW]
      [NEW]     +23 grpc_core::Resolver::~Resolver                                                           +23  [NEW]
      [NEW]     +14 grpc_core::Resolver::~Resolver                                                           +14  [NEW]
      [NEW]      +9 grpc_core::InternallyRefCountedWithTracing::~InternallyRefCountedWithTracing              +9  [NEW]
      [NEW]      +2 grpc_core::InternallyRefCountedWithTracing::~InternallyRefCountedWithTracing              +2  [NEW]
  +1.1%    +150 src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc                          +150  +1.1%
      [NEW] +1.36Ki query_for_backends_locked(glb_lb_policy*) [clone .part.14]                           +1.36Ki  [NEW]
      [NEW]    +801 build_lb_channel_args(grpc_lb_addresses const*, grpc_core::FakeResolverResponseGener    +801  [NEW]
       +13%    +126 glb_create                                                                              +126   +13%
      +3.0%     +11 [Unmapped]                                                                               +11  +3.0%
      [NEW]      +9 grpc_core::RefCounted::~RefCounted                                                        +9  [NEW]
      [NEW]      +9 grpc_core::FakeResolverResponseGenerator::~FakeResolverResponseGenerator                  +9  [NEW]
      [NEW]      +2 grpc_core::RefCounted::~RefCounted                                                        +2  [NEW]
      [NEW]      +2 grpc_core::FakeResolverResponseGenerator::~FakeResolverResponseGenerator                  +2  [NEW]
   +12%    +144 src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc                      +144   +12%
      [NEW]    +175 grpc_core::FakeResolver::ShutdownLocked                                                 +175  [NEW]
      [NEW]    +139 grpc_core::FakeResolverResponseGenerator::SetResponse                                   +139  [NEW]
      [NEW]    +113 grpc_core::FakeResolver::FakeResolver                                                   +113  [NEW]
      +892%    +107 grpc_resolver_fake_init                                                                 +107  +892%
      [NEW]    +105 grpc_core::FakeResolver::MaybeFinishNextLocked                                          +105  [NEW]
      [NEW]     +91 grpc_core::FakeResolverResponseGenerator::SetResponseLocked                              +91  [NEW]
      [NEW]     +67 grpc_core::FakeResolver::NextLocked                                                      +67  [NEW]
      [NEW]     +54 grpc_core::FakeResolver::~FakeResolver                                                   +54  [NEW]
      [NEW]     +52 grpc_core::FakeResolverResponseGenerator::GetFromArgs                                    +52  [NEW]
      [NEW]     +51 grpc_core::FakeResolver::ChannelSawErrorLocked                                           +51  [NEW]
      [NEW]     +51 grpc_core::(anonymous namespace)::FakeResolverFactory::CreateResolver(grpc_core::Res     +51  [NEW]
      [NEW]     +41 grpc_core::(anonymous namespace)::response_generator_arg_destroy                         +41  [NEW]
      [NEW]     +36 grpc_core::FakeResolverResponseGenerator::MakeChannelArg                                 +36  [NEW]
      [NEW]     +18 grpc_core::(anonymous namespace)::response_generator_arg_copy                            +18  [NEW]
      [NEW]     +17 grpc_core::(anonymous namespace)::response_generator_cmp                                 +17  [NEW]
      [NEW]     +14 grpc_core::FakeResolver::~FakeResolver                                                   +14  [NEW]
      [NEW]      +9 grpc_core::(anonymous namespace)::FakeResolverFactory::~FakeResolverFactory               +9  [NEW]
      [NEW]      +8 grpc_core::(anonymous namespace)::FakeResolverFactory::scheme() const                     +8  [NEW]
      [NEW]      +2 grpc_core::(anonymous namespace)::FakeResolverFactory::~FakeResolverFactory               +2  [NEW]
   +12%     +48 src/core/ext/filters/client_channel/client_channel_plugin.cc                             +48   +12%
       +13%     +34 set_default_host_if_unset                                                                +34   +13%
      +100%     +14 [Unmapped]                                                                               +14  +100%
  +2.0%     +16 src/core/ext/transport/chttp2/client/insecure/channel_create.cc                          +16  +2.0%
       +11%     +24 client_channel_factory_create_channel                                                    +24   +11%
  +0.9%     +16 src/core/ext/transport/chttp2/client/secure/secure_channel_create.cc                     +16  +0.9%
       +11%     +24 client_channel_factory_create_channel                                                    +24   +11%

 -------------- SHRINKING                                                                            --------------
  [DEL]     -83 src/core/ext/filters/client_channel/resolver_factory.cc                                  -83  [DEL]
      [DEL]     -34 [Unmapped]                                                                               -34  [DEL]
      [DEL]     -19 grpc_resolver_factory_create_resolver                                                    -19  [DEL]
      [DEL]     -19 grpc_resolver_factory_get_default_authority                                              -19  [DEL]
      [DEL]      -6 grpc_resolver_factory_unref                                                               -6  [DEL]
      [DEL]      -5 grpc_resolver_factory_ref                                                                 -5  [DEL]

  +0.5% +6.43Ki TOTAL                                                                                 +323Ki  +5.1%


****************************************************************

libgrpc++.so

     VM SIZE        FILE SIZE
 ++++++++++++++  ++++++++++++++

  [ = ]       0        0  [ = ]



@grpc-testing
Copy link
Copy Markdown

[trickle] No significant performance differences

@grpc-testing
Copy link
Copy Markdown

[microbenchmarks] No significant performance differences

@grpc-testing
Copy link
Copy Markdown

****************************************************************

libgrpc.so

     VM SIZE                                                                                            FILE SIZE
 ++++++++++++++ GROWING                                                                              ++++++++++++++
  +0.6% +3.53Ki [None]                                                                                +325Ki  +5.6%
      +0.6% +3.34Ki [Unmapped]                                                                            +325Ki  +5.6%
      [NEW]     +64 vtable for grpc_core::FakeResolver                                                       +64  [NEW]
      [NEW]     +64 vtable for grpc_core::(anonymous namespace)::AresDnsResolver                             +64  [NEW]
      [NEW]     +64 vtable for grpc_core::(anonymous namespace)::SockaddrResolver                            +64  [NEW]
      [NEW]     +64 vtable for grpc_core::(anonymous namespace)::NativeDnsResolver                           +64  [NEW]
      [NEW]     +64 vtable for grpc_core::Resolver                                                           +64  [NEW]
      [NEW]     +56 vtable for grpc_core::(anonymous namespace)::FakeResolverFactory                         +56  [NEW]
      [NEW]     +56 vtable for grpc_core::(anonymous namespace)::IPv4ResolverFactory                         +56  [NEW]
      [NEW]     +56 vtable for grpc_core::(anonymous namespace)::IPv6ResolverFactory                         +56  [NEW]
      [NEW]     +56 vtable for grpc_core::(anonymous namespace)::UnixResolverFactory                         +56  [NEW]
      [NEW]     +56 vtable for grpc_core::(anonymous namespace)::AresDnsResolverFactory                      +56  [NEW]
      [NEW]     +56 vtable for grpc_core::(anonymous namespace)::NativeDnsResolverFactory                    +56  [NEW]
      [NEW]     +40 vtable for grpc_core::InternallyRefCountedWithTracing                                    +40  [NEW]
      [NEW]     +32 vtable for grpc_core::RefCounted                                                         +32  [NEW]
      [NEW]     +32 vtable for grpc_core::FakeResolverResponseGenerator                                      +32  [NEW]
      [NEW]     +32 grpc_lb_policy_grpclb_build_lb_channel_args(grpc_slice_hash_table*, grpc_core::FakeR     +32  [NEW]
      [NEW]     +24 grpc_core::(anonymous namespace)::response_generator_arg_vtable                          +24  [NEW]
      [NEW]     +16 grpc_core::(anonymous namespace)::AresDnsResolver::OnResolvedLocked(void*, grpc_erro       0  [ = ]
      [NEW]     +12 grpc_core::(anonymous namespace)::kDefaultPort                                           +12  [NEW]
      [NEW]      +8 grpc_core::g_registry                                                                      0  [ = ]
   +58%    +779 src/core/ext/filters/client_channel/resolver_registry.cc                                +779   +58%
      [NEW]    +477 grpc_core::ResolverRegistry::RegisterResolverFactory                                    +477  [NEW]
      [NEW]    +293 grpc_core::ResolverRegistry::FindFactory                                                +293  [NEW]
      [NEW]    +247 grpc_core::ResolverRegistry::~ResolverRegistry                                          +247  [NEW]
      [NEW]    +191 grpc_core::ResolverRegistry::GetDefaultAuthority                                        +191  [NEW]
      [NEW]    +190 grpc_core::ResolverRegistry::CreateResolver                                             +190  [NEW]
      [NEW]    +177 grpc_core::ResolverRegistry::LookupResolverFactory                                      +177  [NEW]
      [NEW]    +136 grpc_core::ResolverRegistry::SetDefaultPrefix                                           +136  [NEW]
      [NEW]    +135 grpc_core::ResolverRegistry::AddDefaultPrefixIfNeeded                                   +135  [NEW]
      [NEW]     +58 grpc_core::ResolverRegistry::ResolverRegistry                                            +58  [NEW]
      [NEW]     +37 grpc_core::ResolverRegistry::Shutdown                                                    +37  [NEW]
      [NEW]     +36 grpc_core::ResolverRegistry::Init                                                        +36  [NEW]
      [NEW]     +32 grpc_core::ResolverFactory::GetDefaultAuthority(grpc_uri*) const                         +32  [NEW]
       +16%     +12 [Unmapped]                                                                               +12   +16%
      [NEW]      +9 grpc_core::ResolverFactory::~ResolverFactory                                              +9  [NEW]
      [NEW]      +8 grpc_core::ResolverRegistry::Global                                                       +8  [NEW]
      [NEW]      +2 grpc_core::ResolverFactory::~ResolverFactory                                              +2  [NEW]
  +5.5%    +775 src/core/ext/filters/client_channel/client_channel.cc                                   +775  +5.5%
      [NEW]    +301 waiting_for_pick_batches_fail(grpc_call_element*, grpc_error*) [clone .isra.6]          +301  [NEW]
       +31%    +300 cc_init_channel_elem                                                                    +300   +31%
      +5.0%    +137 on_resolver_result_changed_locked                                                       +137  +5.0%
       +14%    +104 start_transport_op_locked                                                               +104   +14%
      +489%     +88 shutdown_resolver_locked                                                                 +88  +489%
      [NEW]     +85 grpc_core::Resolver::Orphan                                                              +85  [NEW]
      [NEW]     +50 grpc_core::Resolver::ShutdownLocked                                                      +50  [NEW]
      +2.7%      +7 cc_destroy_channel_elem                                                                   +7  +2.7%
      +1.5%      +4 [Unmapped]                                                                                +4  +1.5%
   +46%    +592 src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc              +592   +46%
      [NEW]    +668 grpc_core::(anonymous namespace)::CreateSockaddrResolver                                +668  [NEW]
      +498%    +219 grpc_resolver_sockaddr_init                                                             +219  +498%
      [NEW]    +175 grpc_core::(anonymous namespace)::SockaddrResolver::ShutdownLocked                      +175  [NEW]
      [NEW]    +142 grpc_core::(anonymous namespace)::SockaddrResolver::MaybeFinishNextLocked() [clone .    +142  [NEW]
      [NEW]     +84 grpc_core::(anonymous namespace)::SockaddrResolver::NextLocked                           +84  [NEW]
       +75%     +83 [Unmapped]                                                                               +83   +75%
      [NEW]     +69 grpc_core::(anonymous namespace)::IPv4ResolverFactory::CreateResolver(grpc_core::Res     +69  [NEW]
      [NEW]     +69 grpc_core::(anonymous namespace)::IPv6ResolverFactory::CreateResolver(grpc_core::Res     +69  [NEW]
      [NEW]     +69 grpc_core::(anonymous namespace)::UnixResolverFactory::CreateResolver(grpc_core::Res     +69  [NEW]
      [NEW]     +41 grpc_core::(anonymous namespace)::SockaddrResolver::~SockaddrResolver                    +41  [NEW]
      [NEW]     +24 grpc_core::(anonymous namespace)::UnixResolverFactory::GetDefaultAuthority(grpc_uri*     +24  [NEW]
      [NEW]     +18 grpc_core::(anonymous namespace)::SockaddrResolver::ChannelSawErrorLocked                +18  [NEW]
      [NEW]     +14 grpc_core::(anonymous namespace)::SockaddrResolver::~SockaddrResolver                    +14  [NEW]
      [NEW]      +9 grpc_core::(anonymous namespace)::IPv4ResolverFactory::~IPv4ResolverFactory               +9  [NEW]
      [NEW]      +9 grpc_core::(anonymous namespace)::IPv6ResolverFactory::~IPv6ResolverFactory               +9  [NEW]
      [NEW]      +9 grpc_core::(anonymous namespace)::UnixResolverFactory::~UnixResolverFactory               +9  [NEW]
      [NEW]      +8 grpc_core::(anonymous namespace)::IPv4ResolverFactory::scheme() const                     +8  [NEW]
      [NEW]      +8 grpc_core::(anonymous namespace)::IPv6ResolverFactory::scheme() const                     +8  [NEW]
      [NEW]      +8 grpc_core::(anonymous namespace)::UnixResolverFactory::scheme() const                     +8  [NEW]
      [NEW]      +6 [Other]                                                                                   +6  [NEW]
      [NEW]      +2 grpc_core::(anonymous namespace)::IPv4ResolverFactory::~IPv4ResolverFactory               +2  [NEW]
  +6.9%    +240 src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc            +240  +6.9%
      [NEW] +1.66Ki grpc_core::(anonymous namespace)::AresDnsResolver::OnResolvedLocked                  +1.66Ki  [NEW]
      [NEW]    +499 grpc_core::(anonymous namespace)::AresDnsResolverFactory::CreateResolver(grpc_core::    +499  [NEW]
      [NEW]    +231 grpc_core::(anonymous namespace)::AresDnsResolver::ShutdownLocked                       +231  [NEW]
      [NEW]    +169 grpc_core::(anonymous namespace)::AresDnsResolver::MaybeFinishNextLocked                +169  [NEW]
      [NEW]    +167 grpc_core::(anonymous namespace)::AresDnsResolver::StartResolvingLocked                 +167  [NEW]
      [NEW]    +163 grpc_core::(anonymous namespace)::AresDnsResolver::NextLocked                           +163  [NEW]
      +107%    +129 grpc_resolver_dns_ares_init                                                             +129  +107%
      [NEW]    +104 grpc_core::(anonymous namespace)::AresDnsResolver::~AresDnsResolver                     +104  [NEW]
      [NEW]     +84 grpc_core::(anonymous namespace)::ValueInJsonArray(grpc_json*, char const*) [clone .     +84  [NEW]
      [NEW]     +72 grpc_core::(anonymous namespace)::AresDnsResolver::OnRetryTimerLocked                    +72  [NEW]
      [NEW]     +41 grpc_core::(anonymous namespace)::AresDnsResolver::ChannelSawErrorLocked                 +41  [NEW]
      [NEW]     +14 grpc_core::(anonymous namespace)::AresDnsResolver::~AresDnsResolver                      +14  [NEW]
      +8.1%     +10 [Unmapped]                                                                               +10  +8.1%
      [NEW]      +9 grpc_core::(anonymous namespace)::AresDnsResolverFactory::~AresDnsResolverFactory         +9  [NEW]
      [NEW]      +8 grpc_core::(anonymous namespace)::AresDnsResolverFactory::scheme() const                  +8  [NEW]
      [NEW]      +2 grpc_core::(anonymous namespace)::AresDnsResolverFactory::~AresDnsResolverFactory         +2  [NEW]
  +1.4%    +214 src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc                          +214  +1.4%
      [NEW] +1.36Ki query_for_backends_locked(glb_lb_policy*) [clone .part.13]                           +1.36Ki  [NEW]
      [NEW]    +801 build_lb_channel_args(grpc_lb_addresses const*, grpc_core::FakeResolverResponseGener    +801  [NEW]
       +14%    +134 glb_create                                                                              +134   +14%
       +27%     +58 glb_destroy                                                                              +58   +27%
      [NEW]      +9 grpc_core::RefCounted::~RefCounted                                                        +9  [NEW]
      [NEW]      +9 grpc_core::FakeResolverResponseGenerator::~FakeResolverResponseGenerator                  +9  [NEW]
      [NEW]      +2 grpc_core::RefCounted::~RefCounted                                                        +2  [NEW]
      [NEW]      +2 grpc_core::FakeResolverResponseGenerator::~FakeResolverResponseGenerator                  +2  [NEW]
  +9.9%    +208 src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc                 +208  +9.9%
      [NEW]    +735 grpc_core::(anonymous namespace)::NativeDnsResolver::OnResolvedLocked                   +735  [NEW]
      [NEW]    +382 grpc_core::(anonymous namespace)::NativeDnsResolverFactory::CreateResolver(grpc_core    +382  [NEW]
      [NEW]    +191 grpc_core::(anonymous namespace)::NativeDnsResolver::ShutdownLocked                     +191  [NEW]
      [NEW]    +180 grpc_core::(anonymous namespace)::NativeDnsResolver::StartResolvingLocked               +180  [NEW]
       +97%    +148 grpc_resolver_dns_native_init                                                           +148   +97%
      [NEW]    +121 grpc_core::(anonymous namespace)::NativeDnsResolver::MaybeFinishNextLocked              +121  [NEW]
      [NEW]    +112 grpc_core::(anonymous namespace)::NativeDnsResolver::NextLocked                         +112  [NEW]
      [NEW]     +69 grpc_core::(anonymous namespace)::NativeDnsResolver::OnRetryTimerLocked                  +69  [NEW]
      [NEW]     +64 grpc_core::(anonymous namespace)::NativeDnsResolver::~NativeDnsResolver                  +64  [NEW]
      [NEW]     +41 grpc_core::(anonymous namespace)::NativeDnsResolver::ChannelSawErrorLocked               +41  [NEW]
      [NEW]     +14 grpc_core::(anonymous namespace)::NativeDnsResolver::~NativeDnsResolver                  +14  [NEW]
      [NEW]      +9 grpc_core::(anonymous namespace)::NativeDnsResolverFactory::~NativeDnsResolverFactor      +9  [NEW]
      [NEW]      +8 grpc_core::(anonymous namespace)::NativeDnsResolverFactory::scheme() const                +8  [NEW]
      [NEW]      +2 grpc_core::(anonymous namespace)::NativeDnsResolverFactory::~NativeDnsResolverFactor      +2  [NEW]
   +98%    +163 src/core/ext/filters/client_channel/resolver.cc                                         +163   +98%
      [NEW]     +82 grpc_core::Resolver::Resolver                                                            +82  [NEW]
      [NEW]     +47 grpc_core::Orphanable::Orphan                                                            +47  [NEW]
      [NEW]     +47 grpc_core::Resolver::NextLocked                                                          +47  [NEW]
      [NEW]     +47 grpc_core::Resolver::ShutdownLocked                                                      +47  [NEW]
      [NEW]     +47 grpc_core::Resolver::ChannelSawErrorLocked                                               +47  [NEW]
      [NEW]     +23 grpc_core::Resolver::~Resolver                                                           +23  [NEW]
      [NEW]     +14 grpc_core::Resolver::~Resolver                                                           +14  [NEW]
      [NEW]      +9 grpc_core::InternallyRefCountedWithTracing::~InternallyRefCountedWithTracing              +9  [NEW]
      [NEW]      +2 grpc_core::InternallyRefCountedWithTracing::~InternallyRefCountedWithTracing              +2  [NEW]
   +12%    +144 src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc                      +144   +12%
      [NEW]    +175 grpc_core::FakeResolver::ShutdownLocked                                                 +175  [NEW]
      [NEW]    +139 grpc_core::FakeResolverResponseGenerator::SetResponse                                   +139  [NEW]
      [NEW]    +113 grpc_core::FakeResolver::FakeResolver                                                   +113  [NEW]
      +892%    +107 grpc_resolver_fake_init                                                                 +107  +892%
      [NEW]    +105 grpc_core::FakeResolver::MaybeFinishNextLocked                                          +105  [NEW]
      [NEW]     +91 grpc_core::FakeResolverResponseGenerator::SetResponseLocked                              +91  [NEW]
      [NEW]     +67 grpc_core::FakeResolver::NextLocked                                                      +67  [NEW]
      [NEW]     +54 grpc_core::FakeResolver::~FakeResolver                                                   +54  [NEW]
      [NEW]     +52 grpc_core::FakeResolverResponseGenerator::GetFromArgs                                    +52  [NEW]
      [NEW]     +51 grpc_core::FakeResolver::ChannelSawErrorLocked                                           +51  [NEW]
      [NEW]     +51 grpc_core::(anonymous namespace)::FakeResolverFactory::CreateResolver(grpc_core::Res     +51  [NEW]
      [NEW]     +41 grpc_core::(anonymous namespace)::response_generator_arg_destroy                         +41  [NEW]
      [NEW]     +36 grpc_core::FakeResolverResponseGenerator::MakeChannelArg                                 +36  [NEW]
      [NEW]     +18 grpc_core::(anonymous namespace)::response_generator_arg_copy                            +18  [NEW]
      [NEW]     +17 grpc_core::(anonymous namespace)::response_generator_cmp                                 +17  [NEW]
      [NEW]     +14 grpc_core::FakeResolver::~FakeResolver                                                   +14  [NEW]
      [NEW]      +9 grpc_core::(anonymous namespace)::FakeResolverFactory::~FakeResolverFactory               +9  [NEW]
      [NEW]      +8 grpc_core::(anonymous namespace)::FakeResolverFactory::scheme() const                     +8  [NEW]
      [NEW]      +2 grpc_core::(anonymous namespace)::FakeResolverFactory::~FakeResolverFactory               +2  [NEW]
   +12%     +48 src/core/ext/filters/client_channel/client_channel_plugin.cc                             +48   +12%
       +13%     +34 set_default_host_if_unset                                                                +34   +13%
      +100%     +14 [Unmapped]                                                                               +14  +100%
  +2.0%     +16 src/core/ext/transport/chttp2/client/insecure/channel_create.cc                          +16  +2.0%
       +11%     +24 client_channel_factory_create_channel                                                    +24   +11%
  +0.9%     +16 src/core/ext/transport/chttp2/client/secure/secure_channel_create.cc                     +16  +0.9%
       +11%     +24 client_channel_factory_create_channel                                                    +24   +11%

 -------------- SHRINKING                                                                            --------------
  [DEL]     -83 src/core/ext/filters/client_channel/resolver_factory.cc                                  -83  [DEL]
      [DEL]     -34 [Unmapped]                                                                               -34  [DEL]
      [DEL]     -19 grpc_resolver_factory_create_resolver                                                    -19  [DEL]
      [DEL]     -19 grpc_resolver_factory_get_default_authority                                              -19  [DEL]
      [DEL]      -6 grpc_resolver_factory_unref                                                               -6  [DEL]
      [DEL]      -5 grpc_resolver_factory_ref                                                                 -5  [DEL]

  +0.6% +6.57Ki TOTAL                                                                                 +328Ki  +5.1%


****************************************************************

libgrpc++.so

     VM SIZE        FILE SIZE
 ++++++++++++++  ++++++++++++++

  [ = ]       0        0  [ = ]



@grpc-testing
Copy link
Copy Markdown

[trickle] No significant performance differences

@grpc-testing
Copy link
Copy Markdown

[microbenchmarks] Performance differences noted:
Benchmark                                                              cpu_time    real_time
---------------------------------------------------------------------  ----------  -----------
BM_StreamingPingPong<MinInProcess, NoOpMutator, NoOpMutator>/262144/1  -4%         -4%
BM_StreamingPingPongMsgs<InProcess, NoOpMutator, NoOpMutator>/262144   -7%         -7%

@AspirinSJL
Copy link
Copy Markdown
Contributor

Reviewed 1 of 48 files at r1, 48 of 51 files at r6, 1 of 1 files at r7, 2 of 2 files at r8.
Review status: all files reviewed at latest revision, 3 unresolved discussions, some commit checks failed.


src/core/ext/filters/client_channel/resolver_registry.h, line 76 at r8 (raw file):

 private:
  ResolverFactory* FindFactory(const char* target, grpc_uri** uri,

Suggest calling this FindResolverFactory() to be consistent with LookupResolverFactory().


src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc, line 87 at r8 (raw file):

  /// pollset_set to drive the name resolution process
  grpc_pollset_set* interested_parties_;
  /// Closures used by the combiner

Nit: s/Closures/closures/


src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc, line 184 at r8 (raw file):

  }
  if (pending_request_ != nullptr) {
    grpc_cancel_ares_request(pending_request_);

We may want to reset pending_request_ here.


Comments from Reviewable

@markdroth
Copy link
Copy Markdown
Member Author

Review status: all files reviewed at latest revision, 3 unresolved discussions, some commit checks failed.


src/core/ext/filters/client_channel/resolver_registry.h, line 76 at r8 (raw file):

Previously, AspirinSJL (Juanli Shen) wrote…

Suggest calling this FindResolverFactory() to be consistent with LookupResolverFactory().

Done.


src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc, line 87 at r8 (raw file):

Previously, AspirinSJL (Juanli Shen) wrote…

Nit: s/Closures/closures/

Done.


src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc, line 184 at r8 (raw file):

Previously, AspirinSJL (Juanli Shen) wrote…

We may want to reset pending_request_ here.

This isn't related to the rest of this PR, so I'd prefer not to change it here.


Comments from Reviewable

@markdroth markdroth requested a review from a11r as a code owner January 12, 2018 20:49
@markdroth
Copy link
Copy Markdown
Member Author

Note: This is now based on #13984.

@grpc-testing
Copy link
Copy Markdown

****************************************************************

libgrpc.so

     VM SIZE                                                                                            FILE SIZE
 ++++++++++++++ GROWING                                                                              ++++++++++++++
  +0.6% +3.53Ki [None]                                                                                +321Ki  +5.5%
      +0.6% +3.31Ki [Unmapped]                                                                            +321Ki  +5.6%
      [NEW]     +64 vtable for grpc_core::FakeResolver                                                       +64  [NEW]
      [NEW]     +64 vtable for grpc_core::(anonymous namespace)::AresDnsResolver                             +64  [NEW]
      [NEW]     +64 vtable for grpc_core::(anonymous namespace)::SockaddrResolver                            +64  [NEW]
      [NEW]     +64 vtable for grpc_core::(anonymous namespace)::NativeDnsResolver                           +64  [NEW]
      [NEW]     +64 vtable for grpc_core::Resolver                                                           +64  [NEW]
      [NEW]     +56 vtable for grpc_core::(anonymous namespace)::FakeResolverFactory                         +56  [NEW]
      [NEW]     +56 vtable for grpc_core::(anonymous namespace)::IPv4ResolverFactory                         +56  [NEW]
      [NEW]     +56 vtable for grpc_core::(anonymous namespace)::IPv6ResolverFactory                         +56  [NEW]
      [NEW]     +56 vtable for grpc_core::(anonymous namespace)::UnixResolverFactory                         +56  [NEW]
      [NEW]     +56 vtable for grpc_core::(anonymous namespace)::AresDnsResolverFactory                      +56  [NEW]
      [NEW]     +56 vtable for grpc_core::(anonymous namespace)::NativeDnsResolverFactory                    +56  [NEW]
      [NEW]     +40 vtable for grpc_core::InternallyRefCountedWithTracing                                    +40  [NEW]
      [NEW]     +32 vtable for grpc_core::RefCounted                                                         +32  [NEW]
      [NEW]     +32 vtable for grpc_core::FakeResolverResponseGenerator                                      +32  [NEW]
      [NEW]     +32 grpc_lb_policy_grpclb_build_lb_channel_args(grpc_slice_hash_table*, grpc_core::FakeR     +32  [NEW]
      [NEW]     +24 grpc_core::(anonymous namespace)::response_generator_arg_vtable                          +24  [NEW]
      [NEW]     +16 grpc_core::(anonymous namespace)::AresDnsResolver::OnResolvedLocked(void*, grpc_erro       0  [ = ]
      [NEW]     +12 grpc_core::(anonymous namespace)::kDefaultPort                                           +12  [NEW]
      [NEW]      +8 grpc_core::g_registry                                                                      0  [ = ]
   +58%    +779 src/core/ext/filters/client_channel/resolver_registry.cc                                +779   +58%
      [NEW]    +477 grpc_core::ResolverRegistry::RegisterResolverFactory                                    +477  [NEW]
      [NEW]    +293 grpc_core::ResolverRegistry::FindResolverFactory                                        +293  [NEW]
      [NEW]    +247 grpc_core::ResolverRegistry::~ResolverRegistry                                          +247  [NEW]
      [NEW]    +191 grpc_core::ResolverRegistry::GetDefaultAuthority                                        +191  [NEW]
      [NEW]    +190 grpc_core::ResolverRegistry::CreateResolver                                             +190  [NEW]
      [NEW]    +177 grpc_core::ResolverRegistry::LookupResolverFactory                                      +177  [NEW]
      [NEW]    +136 grpc_core::ResolverRegistry::SetDefaultPrefix                                           +136  [NEW]
      [NEW]    +135 grpc_core::ResolverRegistry::AddDefaultPrefixIfNeeded                                   +135  [NEW]
      [NEW]     +58 grpc_core::ResolverRegistry::ResolverRegistry                                            +58  [NEW]
      [NEW]     +37 grpc_core::ResolverRegistry::Shutdown                                                    +37  [NEW]
      [NEW]     +36 grpc_core::ResolverRegistry::Init                                                        +36  [NEW]
      [NEW]     +32 grpc_core::ResolverFactory::GetDefaultAuthority(grpc_uri*) const                         +32  [NEW]
       +16%     +12 [Unmapped]                                                                               +12   +16%
      [NEW]      +9 grpc_core::ResolverFactory::~ResolverFactory                                              +9  [NEW]
      [NEW]      +8 grpc_core::ResolverRegistry::Global                                                       +8  [NEW]
      [NEW]      +2 grpc_core::ResolverFactory::~ResolverFactory                                              +2  [NEW]
  +5.3%    +743 src/core/ext/filters/client_channel/client_channel.cc                                   +743  +5.3%
      [NEW]    +301 waiting_for_pick_batches_fail(grpc_call_element*, grpc_error*) [clone .isra.6]          +301  [NEW]
       +31%    +300 cc_init_channel_elem                                                                    +300   +31%
       +13%    +104 start_transport_op_locked                                                               +104   +13%
      +3.5%     +98 on_resolver_result_changed_locked                                                        +98  +3.5%
      +489%     +88 shutdown_resolver_locked                                                                 +88  +489%
      [NEW]     +85 grpc_core::Resolver::Orphan                                                              +85  [NEW]
      [NEW]     +50 grpc_core::Resolver::ShutdownLocked                                                      +50  [NEW]
      +3.8%     +11 [Unmapped]                                                                               +11  +3.8%
      +2.6%      +7 cc_destroy_channel_elem                                                                   +7  +2.6%
   +46%    +592 src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc              +592   +46%
      [NEW]    +668 grpc_core::(anonymous namespace)::CreateSockaddrResolver                                +668  [NEW]
      +498%    +219 grpc_resolver_sockaddr_init                                                             +219  +498%
      [NEW]    +175 grpc_core::(anonymous namespace)::SockaddrResolver::ShutdownLocked                      +175  [NEW]
      [NEW]    +142 grpc_core::(anonymous namespace)::SockaddrResolver::MaybeFinishNextLocked() [clone .    +142  [NEW]
      [NEW]     +84 grpc_core::(anonymous namespace)::SockaddrResolver::NextLocked                           +84  [NEW]
       +75%     +83 [Unmapped]                                                                               +83   +75%
      [NEW]     +69 grpc_core::(anonymous namespace)::IPv4ResolverFactory::CreateResolver(grpc_core::Res     +69  [NEW]
      [NEW]     +69 grpc_core::(anonymous namespace)::IPv6ResolverFactory::CreateResolver(grpc_core::Res     +69  [NEW]
      [NEW]     +69 grpc_core::(anonymous namespace)::UnixResolverFactory::CreateResolver(grpc_core::Res     +69  [NEW]
      [NEW]     +41 grpc_core::(anonymous namespace)::SockaddrResolver::~SockaddrResolver                    +41  [NEW]
      [NEW]     +24 grpc_core::(anonymous namespace)::UnixResolverFactory::GetDefaultAuthority(grpc_uri*     +24  [NEW]
      [NEW]     +18 grpc_core::(anonymous namespace)::SockaddrResolver::ChannelSawErrorLocked                +18  [NEW]
      [NEW]     +14 grpc_core::(anonymous namespace)::SockaddrResolver::~SockaddrResolver                    +14  [NEW]
      [NEW]      +9 grpc_core::(anonymous namespace)::IPv4ResolverFactory::~IPv4ResolverFactory               +9  [NEW]
      [NEW]      +9 grpc_core::(anonymous namespace)::IPv6ResolverFactory::~IPv6ResolverFactory               +9  [NEW]
      [NEW]      +9 grpc_core::(anonymous namespace)::UnixResolverFactory::~UnixResolverFactory               +9  [NEW]
      [NEW]      +8 grpc_core::(anonymous namespace)::IPv4ResolverFactory::scheme() const                     +8  [NEW]
      [NEW]      +8 grpc_core::(anonymous namespace)::IPv6ResolverFactory::scheme() const                     +8  [NEW]
      [NEW]      +8 grpc_core::(anonymous namespace)::UnixResolverFactory::scheme() const                     +8  [NEW]
      [NEW]      +6 [Other]                                                                                   +6  [NEW]
      [NEW]      +2 grpc_core::(anonymous namespace)::IPv4ResolverFactory::~IPv4ResolverFactory               +2  [NEW]
  +6.9%    +240 src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc            +240  +6.9%
      [NEW] +1.66Ki grpc_core::(anonymous namespace)::AresDnsResolver::OnResolvedLocked                  +1.66Ki  [NEW]
      [NEW]    +499 grpc_core::(anonymous namespace)::AresDnsResolverFactory::CreateResolver(grpc_core::    +499  [NEW]
      [NEW]    +231 grpc_core::(anonymous namespace)::AresDnsResolver::ShutdownLocked                       +231  [NEW]
      [NEW]    +169 grpc_core::(anonymous namespace)::AresDnsResolver::MaybeFinishNextLocked                +169  [NEW]
      [NEW]    +167 grpc_core::(anonymous namespace)::AresDnsResolver::StartResolvingLocked                 +167  [NEW]
      [NEW]    +163 grpc_core::(anonymous namespace)::AresDnsResolver::NextLocked                           +163  [NEW]
      +107%    +129 grpc_resolver_dns_ares_init                                                             +129  +107%
      [NEW]    +104 grpc_core::(anonymous namespace)::AresDnsResolver::~AresDnsResolver                     +104  [NEW]
      [NEW]     +84 grpc_core::(anonymous namespace)::ValueInJsonArray(grpc_json*, char const*) [clone .     +84  [NEW]
      [NEW]     +72 grpc_core::(anonymous namespace)::AresDnsResolver::OnRetryTimerLocked                    +72  [NEW]
      [NEW]     +41 grpc_core::(anonymous namespace)::AresDnsResolver::ChannelSawErrorLocked                 +41  [NEW]
      [NEW]     +14 grpc_core::(anonymous namespace)::AresDnsResolver::~AresDnsResolver                      +14  [NEW]
      +8.1%     +10 [Unmapped]                                                                               +10  +8.1%
      [NEW]      +9 grpc_core::(anonymous namespace)::AresDnsResolverFactory::~AresDnsResolverFactory         +9  [NEW]
      [NEW]      +8 grpc_core::(anonymous namespace)::AresDnsResolverFactory::scheme() const                  +8  [NEW]
      [NEW]      +2 grpc_core::(anonymous namespace)::AresDnsResolverFactory::~AresDnsResolverFactory         +2  [NEW]
  +1.5%    +214 src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc                          +214  +1.5%
      [NEW] +1.36Ki query_for_backends_locked(glb_lb_policy*) [clone .part.13]                           +1.36Ki  [NEW]
      [NEW]    +801 build_lb_channel_args(grpc_lb_addresses const*, grpc_core::FakeResolverResponseGener    +801  [NEW]
       +13%    +126 glb_create                                                                              +126   +13%
       +29%     +63 glb_destroy                                                                              +63   +29%
      [NEW]      +9 grpc_core::RefCounted::~RefCounted                                                        +9  [NEW]
      [NEW]      +9 grpc_core::FakeResolverResponseGenerator::~FakeResolverResponseGenerator                  +9  [NEW]
      +0.8%      +3 [Unmapped]                                                                                +3  +0.8%
      [NEW]      +2 grpc_core::RefCounted::~RefCounted                                                        +2  [NEW]
      [NEW]      +2 grpc_core::FakeResolverResponseGenerator::~FakeResolverResponseGenerator                  +2  [NEW]
  +9.9%    +208 src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc                 +208  +9.9%
      [NEW]    +735 grpc_core::(anonymous namespace)::NativeDnsResolver::OnResolvedLocked                   +735  [NEW]
      [NEW]    +382 grpc_core::(anonymous namespace)::NativeDnsResolverFactory::CreateResolver(grpc_core    +382  [NEW]
      [NEW]    +191 grpc_core::(anonymous namespace)::NativeDnsResolver::ShutdownLocked                     +191  [NEW]
      [NEW]    +180 grpc_core::(anonymous namespace)::NativeDnsResolver::StartResolvingLocked               +180  [NEW]
       +97%    +148 grpc_resolver_dns_native_init                                                           +148   +97%
      [NEW]    +121 grpc_core::(anonymous namespace)::NativeDnsResolver::MaybeFinishNextLocked              +121  [NEW]
      [NEW]    +112 grpc_core::(anonymous namespace)::NativeDnsResolver::NextLocked                         +112  [NEW]
      [NEW]     +69 grpc_core::(anonymous namespace)::NativeDnsResolver::OnRetryTimerLocked                  +69  [NEW]
      [NEW]     +64 grpc_core::(anonymous namespace)::NativeDnsResolver::~NativeDnsResolver                  +64  [NEW]
      [NEW]     +41 grpc_core::(anonymous namespace)::NativeDnsResolver::ChannelSawErrorLocked               +41  [NEW]
      [NEW]     +14 grpc_core::(anonymous namespace)::NativeDnsResolver::~NativeDnsResolver                  +14  [NEW]
      [NEW]      +9 grpc_core::(anonymous namespace)::NativeDnsResolverFactory::~NativeDnsResolverFactor      +9  [NEW]
      [NEW]      +8 grpc_core::(anonymous namespace)::NativeDnsResolverFactory::scheme() const                +8  [NEW]
      [NEW]      +2 grpc_core::(anonymous namespace)::NativeDnsResolverFactory::~NativeDnsResolverFactor      +2  [NEW]
   +98%    +163 src/core/ext/filters/client_channel/resolver.cc                                         +163   +98%
      [NEW]     +82 grpc_core::Resolver::Resolver                                                            +82  [NEW]
      [NEW]     +47 grpc_core::Orphanable::Orphan                                                            +47  [NEW]
      [NEW]     +47 grpc_core::Resolver::NextLocked                                                          +47  [NEW]
      [NEW]     +47 grpc_core::Resolver::ShutdownLocked                                                      +47  [NEW]
      [NEW]     +47 grpc_core::Resolver::ChannelSawErrorLocked                                               +47  [NEW]
      [NEW]     +23 grpc_core::Resolver::~Resolver                                                           +23  [NEW]
      [NEW]     +14 grpc_core::Resolver::~Resolver                                                           +14  [NEW]
      [NEW]      +9 grpc_core::InternallyRefCountedWithTracing::~InternallyRefCountedWithTracing              +9  [NEW]
      [NEW]      +2 grpc_core::InternallyRefCountedWithTracing::~InternallyRefCountedWithTracing              +2  [NEW]
   +12%    +144 src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc                      +144   +12%
      [NEW]    +175 grpc_core::FakeResolver::ShutdownLocked                                                 +175  [NEW]
      [NEW]    +139 grpc_core::FakeResolverResponseGenerator::SetResponse                                   +139  [NEW]
      [NEW]    +113 grpc_core::FakeResolver::FakeResolver                                                   +113  [NEW]
      +892%    +107 grpc_resolver_fake_init                                                                 +107  +892%
      [NEW]    +105 grpc_core::FakeResolver::MaybeFinishNextLocked                                          +105  [NEW]
      [NEW]     +91 grpc_core::FakeResolverResponseGenerator::SetResponseLocked                              +91  [NEW]
      [NEW]     +67 grpc_core::FakeResolver::NextLocked                                                      +67  [NEW]
      [NEW]     +54 grpc_core::FakeResolver::~FakeResolver                                                   +54  [NEW]
      [NEW]     +52 grpc_core::FakeResolverResponseGenerator::GetFromArgs                                    +52  [NEW]
      [NEW]     +51 grpc_core::FakeResolver::ChannelSawErrorLocked                                           +51  [NEW]
      [NEW]     +51 grpc_core::(anonymous namespace)::FakeResolverFactory::CreateResolver(grpc_core::Res     +51  [NEW]
      [NEW]     +41 grpc_core::(anonymous namespace)::response_generator_arg_destroy                         +41  [NEW]
      [NEW]     +36 grpc_core::FakeResolverResponseGenerator::MakeChannelArg                                 +36  [NEW]
      [NEW]     +18 grpc_core::(anonymous namespace)::response_generator_arg_copy                            +18  [NEW]
      [NEW]     +17 grpc_core::(anonymous namespace)::response_generator_cmp                                 +17  [NEW]
      [NEW]     +14 grpc_core::FakeResolver::~FakeResolver                                                   +14  [NEW]
      [NEW]      +9 grpc_core::(anonymous namespace)::FakeResolverFactory::~FakeResolverFactory               +9  [NEW]
      [NEW]      +8 grpc_core::(anonymous namespace)::FakeResolverFactory::scheme() const                     +8  [NEW]
      [NEW]      +2 grpc_core::(anonymous namespace)::FakeResolverFactory::~FakeResolverFactory               +2  [NEW]
   +12%     +48 src/core/ext/filters/client_channel/client_channel_plugin.cc                             +48   +12%
       +13%     +34 set_default_host_if_unset                                                                +34   +13%
      +100%     +14 [Unmapped]                                                                               +14  +100%
  +2.0%     +16 src/core/ext/transport/chttp2/client/insecure/channel_create.cc                          +16  +2.0%
       +11%     +24 client_channel_factory_create_channel                                                    +24   +11%
  +0.9%     +16 src/core/ext/transport/chttp2/client/secure/secure_channel_create.cc                     +16  +0.9%
       +11%     +24 client_channel_factory_create_channel                                                    +24   +11%

 -------------- SHRINKING                                                                            --------------
  [DEL]     -83 src/core/ext/filters/client_channel/resolver_factory.cc                                  -83  [DEL]
      [DEL]     -34 [Unmapped]                                                                               -34  [DEL]
      [DEL]     -19 grpc_resolver_factory_create_resolver                                                    -19  [DEL]
      [DEL]     -19 grpc_resolver_factory_get_default_authority                                              -19  [DEL]
      [DEL]      -6 grpc_resolver_factory_unref                                                               -6  [DEL]
      [DEL]      -5 grpc_resolver_factory_ref                                                                 -5  [DEL]

  +0.6% +6.54Ki TOTAL                                                                                 +324Ki  +5.1%


****************************************************************

libgrpc++.so

     VM SIZE        FILE SIZE
 ++++++++++++++  ++++++++++++++

  [ = ]       0        0  [ = ]



@grpc-testing
Copy link
Copy Markdown

[trickle] No significant performance differences

@grpc-testing
Copy link
Copy Markdown

[trickle] No significant performance differences

@grpc-testing
Copy link
Copy Markdown

****************************************************************

libgrpc.so

     VM SIZE                                                                                            FILE SIZE
 ++++++++++++++ GROWING                                                                              ++++++++++++++
  +0.6% +3.26Ki [None]                                                                                +189Ki  +3.1%
      +0.6% +3.07Ki [Unmapped]                                                                            +189Ki  +3.1%
      [NEW]     +64 vtable for grpc_core::FakeResolver                                                       +64  [NEW]
      [NEW]     +64 vtable for grpc_core::(anonymous namespace)::AresDnsResolver                             +64  [NEW]
      [NEW]     +64 vtable for grpc_core::(anonymous namespace)::SockaddrResolver                            +64  [NEW]
      [NEW]     +64 vtable for grpc_core::(anonymous namespace)::NativeDnsResolver                           +64  [NEW]
      [NEW]     +64 vtable for grpc_core::Resolver                                                           +64  [NEW]
      [NEW]     +56 vtable for grpc_core::(anonymous namespace)::FakeResolverFactory                         +56  [NEW]
      [NEW]     +56 vtable for grpc_core::(anonymous namespace)::IPv4ResolverFactory                         +56  [NEW]
      [NEW]     +56 vtable for grpc_core::(anonymous namespace)::IPv6ResolverFactory                         +56  [NEW]
      [NEW]     +56 vtable for grpc_core::(anonymous namespace)::UnixResolverFactory                         +56  [NEW]
      [NEW]     +56 vtable for grpc_core::(anonymous namespace)::AresDnsResolverFactory                      +56  [NEW]
      [NEW]     +56 vtable for grpc_core::(anonymous namespace)::NativeDnsResolverFactory                    +56  [NEW]
      [NEW]     +40 vtable for grpc_core::InternallyRefCountedWithTracing<grpc_core::Resolver>               +40  [NEW]
      [NEW]     +32 vtable for grpc_core::RefCounted<grpc_core::FakeResolverResponseGenerator>               +32  [NEW]
      [NEW]     +32 vtable for grpc_core::FakeResolverResponseGenerator                                      +32  [NEW]
      [NEW]     +32 grpc_lb_policy_grpclb_build_lb_channel_args(grpc_slice_hash_table*, grpc_core::FakeR     +32  [NEW]
      [NEW]     +24 grpc_core::(anonymous namespace)::response_generator_arg_vtable                          +24  [NEW]
      [NEW]     +16 grpc_core::(anonymous namespace)::AresDnsResolver::OnResolvedLocked(void*, grpc_erro       0  [ = ]
      [NEW]     +12 grpc_core::(anonymous namespace)::kDefaultPort                                           +12  [NEW]
      [NEW]      +8 grpc_core::(anonymous namespace)::g_state                                                  0  [ = ]
  +171% +2.23Ki src/core/ext/filters/client_channel/resolver_registry.cc                             +2.23Ki  +171%
      [NEW]    +782 grpc_core::ResolverRegistry::CreateResolver                                             +782  [NEW]
      [NEW]    +730 grpc_core::ResolverRegistry::GetDefaultAuthority                                        +730  [NEW]
      [NEW]    +666 grpc_core::ResolverRegistry::AddDefaultPrefixIfNeeded                                   +666  [NEW]
      [NEW]    +541 grpc_core::ResolverRegistry::Builder::RegisterResolverFactory                           +541  [NEW]
      [NEW]    +283 grpc_core::ResolverRegistry::Builder::ShutdownRegistry                                  +283  [NEW]
      [NEW]    +225 grpc_core::ResolverRegistry::LookupResolverFactory                                      +225  [NEW]
      [NEW]    +165 grpc_core::ResolverRegistry::Builder::SetDefaultPrefix                                  +165  [NEW]
      [NEW]     +96 grpc_core::ResolverRegistry::Builder::InitRegistry                                       +96  [NEW]
      [NEW]     +47 grpc_core::(anonymous namespace)::RegistryState::FindResolverFactory(char const*, gr     +47  [NEW]
      [NEW]     +32 grpc_core::ResolverFactory::GetDefaultAuthority(grpc_uri*) const                         +32  [NEW]
      [NEW]      +9 grpc_core::ResolverFactory::~ResolverFactory                                              +9  [NEW]
      [NEW]      +2 grpc_core::ResolverFactory::~ResolverFactory                                              +2  [NEW]
  +5.0%    +695 src/core/ext/filters/client_channel/client_channel.cc                                   +695  +5.0%
      [NEW]    +301 waiting_for_pick_batches_fail(grpc_call_element*, grpc_error*) [clone .isra.6]          +301  [NEW]
       +26%    +252 cc_init_channel_elem                                                                    +252   +26%
       +13%    +104 start_transport_op_locked                                                               +104   +13%
      +3.5%     +98 on_resolver_result_changed_locked                                                        +98  +3.5%
      +489%     +88 shutdown_resolver_locked                                                                 +88  +489%
      [NEW]     +85 grpc_core::Resolver::Orphan                                                              +85  [NEW]
      [NEW]     +50 grpc_core::Resolver::ShutdownAndUnrefLocked                                              +50  [NEW]
      +3.9%     +11 [Unmapped]                                                                               +11  +3.9%
      +2.6%      +7 cc_destroy_channel_elem                                                                   +7  +2.6%
   +44%    +576 src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc              +576   +44%
      [NEW]    +668 grpc_core::(anonymous namespace)::CreateSockaddrResolver                                +668  [NEW]
      +450%    +198 grpc_resolver_sockaddr_init                                                             +198  +450%
      [NEW]    +175 grpc_core::(anonymous namespace)::SockaddrResolver::ShutdownLocked                      +175  [NEW]
      [NEW]    +142 grpc_core::(anonymous namespace)::SockaddrResolver::MaybeFinishNextLocked() [clone .    +142  [NEW]
       +80%     +88 [Unmapped]                                                                               +88   +80%
      [NEW]     +84 grpc_core::(anonymous namespace)::SockaddrResolver::NextLocked                           +84  [NEW]
      [NEW]     +69 grpc_core::(anonymous namespace)::IPv4ResolverFactory::CreateResolver(grpc_core::Res     +69  [NEW]
      [NEW]     +69 grpc_core::(anonymous namespace)::IPv6ResolverFactory::CreateResolver(grpc_core::Res     +69  [NEW]
      [NEW]     +69 grpc_core::(anonymous namespace)::UnixResolverFactory::CreateResolver(grpc_core::Res     +69  [NEW]
      [NEW]     +41 grpc_core::(anonymous namespace)::SockaddrResolver::~SockaddrResolver                    +41  [NEW]
      [NEW]     +24 grpc_core::(anonymous namespace)::UnixResolverFactory::GetDefaultAuthority(grpc_uri*     +24  [NEW]
      [NEW]     +18 grpc_core::(anonymous namespace)::SockaddrResolver::RequestReresolutionLocked            +18  [NEW]
      [NEW]     +14 grpc_core::(anonymous namespace)::SockaddrResolver::~SockaddrResolver                    +14  [NEW]
      [NEW]      +9 grpc_core::(anonymous namespace)::IPv4ResolverFactory::~IPv4ResolverFactory               +9  [NEW]
      [NEW]      +9 grpc_core::(anonymous namespace)::IPv6ResolverFactory::~IPv6ResolverFactory               +9  [NEW]
      [NEW]      +9 grpc_core::(anonymous namespace)::UnixResolverFactory::~UnixResolverFactory               +9  [NEW]
      [NEW]      +8 grpc_core::(anonymous namespace)::IPv4ResolverFactory::scheme() const                     +8  [NEW]
      [NEW]      +8 grpc_core::(anonymous namespace)::IPv6ResolverFactory::scheme() const                     +8  [NEW]
      [NEW]      +8 grpc_core::(anonymous namespace)::UnixResolverFactory::scheme() const                     +8  [NEW]
      [NEW]      +6 [Other]                                                                                   +6  [NEW]
      [NEW]      +2 grpc_core::(anonymous namespace)::IPv4ResolverFactory::~IPv4ResolverFactory               +2  [NEW]
   +12%    +272 src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc                 +272   +12%
      [NEW]    +715 grpc_core::(anonymous namespace)::NativeDnsResolver::OnResolvedLocked                   +715  [NEW]
      [NEW]    +526 grpc_core::(anonymous namespace)::NativeDnsResolverFactory::CreateResolver(grpc_core    +526  [NEW]
      [NEW]    +199 grpc_core::(anonymous namespace)::NativeDnsResolver::ShutdownLocked                     +199  [NEW]
      [NEW]    +196 grpc_core::(anonymous namespace)::NativeDnsResolver::MaybeStartResolvingLocked          +196  [NEW]
      [NEW]    +145 grpc_core::(anonymous namespace)::NativeDnsResolver::StartResolvingLocked               +145  [NEW]
       +92%    +140 grpc_resolver_dns_native_init                                                           +140   +92%
      [NEW]    +129 grpc_core::(anonymous namespace)::NativeDnsResolver::MaybeFinishNextLocked              +129  [NEW]
      [NEW]     +92 grpc_core::(anonymous namespace)::NativeDnsResolver::NextLocked                          +92  [NEW]
      [NEW]     +69 grpc_core::(anonymous namespace)::NativeDnsResolver::OnNextResolutionLocked              +69  [NEW]
      [NEW]     +67 grpc_core::(anonymous namespace)::NativeDnsResolver::~NativeDnsResolver                  +67  [NEW]
       +54%     +49 [Unmapped]                                                                               +49   +54%
      [NEW]     +21 grpc_core::(anonymous namespace)::NativeDnsResolver::RequestReresolutionLocked           +21  [NEW]
      [NEW]     +14 grpc_core::(anonymous namespace)::NativeDnsResolver::~NativeDnsResolver                  +14  [NEW]
      [NEW]      +9 grpc_core::(anonymous namespace)::NativeDnsResolverFactory::~NativeDnsResolverFactor      +9  [NEW]
      [NEW]      +8 grpc_core::(anonymous namespace)::NativeDnsResolverFactory::scheme() const                +8  [NEW]
      [NEW]      +2 grpc_core::(anonymous namespace)::NativeDnsResolverFactory::~NativeDnsResolverFactor      +2  [NEW]
  +6.4%    +240 src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc            +240  +6.4%
      [NEW] +1.66Ki grpc_core::(anonymous namespace)::AresDnsResolver::OnResolvedLocked                  +1.66Ki  [NEW]
      [NEW]    +579 grpc_core::(anonymous namespace)::AresDnsResolverFactory::CreateResolver(grpc_core::    +579  [NEW]
      [NEW]    +231 grpc_core::(anonymous namespace)::AresDnsResolver::ShutdownLocked                       +231  [NEW]
      [NEW]    +202 grpc_core::(anonymous namespace)::AresDnsResolver::StartResolvingLocked                 +202  [NEW]
      [NEW]    +196 grpc_core::(anonymous namespace)::AresDnsResolver::MaybeStartResolvingLocked            +196  [NEW]
      [NEW]    +169 grpc_core::(anonymous namespace)::AresDnsResolver::MaybeFinishNextLocked                +169  [NEW]
      [NEW]    +148 grpc_core::(anonymous namespace)::AresDnsResolver::NextLocked                           +148  [NEW]
      +100%    +121 grpc_resolver_dns_ares_init                                                             +121  +100%
      [NEW]    +104 grpc_core::(anonymous namespace)::AresDnsResolver::~AresDnsResolver                     +104  [NEW]
      [NEW]     +84 grpc_core::(anonymous namespace)::ValueInJsonArray(grpc_json*, char const*) [clone .     +84  [NEW]
      [NEW]     +72 grpc_core::(anonymous namespace)::AresDnsResolver::OnNextResolutionLocked                +72  [NEW]
      [NEW]     +21 grpc_core::(anonymous namespace)::AresDnsResolver::RequestReresolutionLocked             +21  [NEW]
      [NEW]     +14 grpc_core::(anonymous namespace)::AresDnsResolver::~AresDnsResolver                      +14  [NEW]
      [NEW]      +9 grpc_core::(anonymous namespace)::AresDnsResolverFactory::~AresDnsResolverFactory         +9  [NEW]
      [NEW]      +8 grpc_core::(anonymous namespace)::AresDnsResolverFactory::scheme() const                  +8  [NEW]
      +4.8%      +7 [Unmapped]                                                                                +7  +4.8%
      [NEW]      +2 grpc_core::(anonymous namespace)::AresDnsResolverFactory::~AresDnsResolverFactory         +2  [NEW]
  +1.5%    +214 src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc                          +214  +1.5%
      [NEW]    +801 build_lb_channel_args(grpc_lb_addresses const*, grpc_core::FakeResolverResponseGener    +801  [NEW]
       +12%    +126 glb_create                                                                              +126   +12%
       +32%     +64 glb_destroy                                                                              +64   +32%
      [NEW]      +9 grpc_core::RefCounted<grpc_core::FakeResolverResponseGenerator>::~RefCounted              +9  [NEW]
      [NEW]      +9 grpc_core::FakeResolverResponseGenerator::~FakeResolverResponseGenerator                  +9  [NEW]
      +0.5%      +2 [Unmapped]                                                                                +2  +0.5%
      [NEW]      +2 grpc_core::RefCounted<grpc_core::FakeResolverResponseGenerator>::~RefCounted              +2  [NEW]
      [NEW]      +2 grpc_core::FakeResolverResponseGenerator::~FakeResolverResponseGenerator                  +2  [NEW]
   +98%    +163 src/core/ext/filters/client_channel/resolver.cc                                         +163   +98%
      [NEW]     +82 grpc_core::Resolver::Resolver                                                            +82  [NEW]
      [NEW]     +47 grpc_core::Orphanable::Orphan                                                            +47  [NEW]
      [NEW]     +47 grpc_core::Resolver::NextLocked                                                          +47  [NEW]
      [NEW]     +47 grpc_core::Resolver::ShutdownLocked                                                      +47  [NEW]
      [NEW]     +47 grpc_core::Resolver::RequestReresolutionLocked                                           +47  [NEW]
      [NEW]     +23 grpc_core::Resolver::~Resolver                                                           +23  [NEW]
      [NEW]     +14 grpc_core::Resolver::~Resolver                                                           +14  [NEW]
      [NEW]      +9 grpc_core::InternallyRefCountedWithTracing<grpc_core::Resolver>::~InternallyRefCount      +9  [NEW]
      [NEW]      +2 grpc_core::InternallyRefCountedWithTracing<grpc_core::Resolver>::~InternallyRefCount      +2  [NEW]
   +11%    +160 src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc                      +160   +11%
      [NEW]    +209 grpc_core::FakeResolverResponseGenerator::SetResponse                                   +209  [NEW]
      [NEW]    +181 grpc_core::FakeResolverResponseGenerator::SetReresolutionResponse                       +181  [NEW]
      [NEW]    +175 grpc_core::FakeResolver::ShutdownLocked                                                 +175  [NEW]
      [NEW]    +121 grpc_core::FakeResolver::FakeResolver                                                   +121  [NEW]
      [NEW]    +105 grpc_core::FakeResolver::MaybeFinishNextLocked                                          +105  [NEW]
      +825%     +99 grpc_resolver_fake_init                                                                  +99  +825%
      [NEW]     +97 grpc_core::FakeResolver::RequestReresolutionLocked                                       +97  [NEW]
      [NEW]     +78 grpc_core::FakeResolverResponseGenerator::SetResponseLocked                              +78  [NEW]
      [NEW]     +67 grpc_core::FakeResolver::NextLocked                                                      +67  [NEW]
      [NEW]     +63 grpc_core::FakeResolver::~FakeResolver                                                   +63  [NEW]
      [NEW]     +52 grpc_core::FakeResolverResponseGenerator::GetFromArgs                                    +52  [NEW]
      [NEW]     +51 grpc_core::(anonymous namespace)::FakeResolverFactory::CreateResolver(grpc_core::Res     +51  [NEW]
      [NEW]     +48 grpc_core::FakeResolverResponseGenerator::SetReresolutionResponseLocked                  +48  [NEW]
      [NEW]     +41 grpc_core::(anonymous namespace)::response_generator_arg_destroy                         +41  [NEW]
      [NEW]     +36 grpc_core::FakeResolverResponseGenerator::MakeChannelArg                                 +36  [NEW]
      [NEW]     +18 grpc_core::(anonymous namespace)::response_generator_arg_copy                            +18  [NEW]
      [NEW]     +17 grpc_core::(anonymous namespace)::response_generator_cmp                                 +17  [NEW]
      [NEW]     +14 grpc_core::FakeResolver::~FakeResolver                                                   +14  [NEW]
      [NEW]      +9 grpc_core::(anonymous namespace)::FakeResolverFactory::~FakeResolverFactory               +9  [NEW]
      [NEW]      +8 grpc_core::(anonymous namespace)::FakeResolverFactory::scheme() const                     +8  [NEW]
      [NEW]      +2 [Other]                                                                                   +2  [NEW]
  +7.9%     +32 src/core/ext/filters/client_channel/client_channel_plugin.cc                             +32  +7.9%
      +9.0%     +23 set_default_host_if_unset                                                                +23  +9.0%
       +64%      +9 [Unmapped]                                                                                +9   +64%
  +2.0%     +16 src/core/ext/transport/chttp2/client/insecure/channel_create.cc                          +16  +2.0%
      +7.5%     +16 client_channel_factory_create_channel                                                    +16  +7.5%
  +0.9%     +16 src/core/ext/transport/chttp2/client/secure/secure_channel_create.cc                     +16  +0.9%
      +7.5%     +16 client_channel_factory_create_channel                                                    +16  +7.5%

 -------------- SHRINKING                                                                            --------------
  [DEL]     -83 src/core/ext/filters/client_channel/resolver_factory.cc                                  -83  [DEL]
      [DEL]     -34 [Unmapped]                                                                               -34  [DEL]
      [DEL]     -19 grpc_resolver_factory_create_resolver                                                    -19  [DEL]
      [DEL]     -19 grpc_resolver_factory_get_default_authority                                              -19  [DEL]
      [DEL]      -6 grpc_resolver_factory_unref                                                               -6  [DEL]
      [DEL]      -5 grpc_resolver_factory_ref                                                                 -5  [DEL]

  +0.7% +7.74Ki TOTAL                                                                                 +194Ki  +2.9%


****************************************************************

libgrpc++.so

     VM SIZE        FILE SIZE
 ++++++++++++++  ++++++++++++++

  [ = ]       0        0  [ = ]



@grpc-testing
Copy link
Copy Markdown

[trickle] No significant performance differences

@grpc-testing
Copy link
Copy Markdown

Corrupt JSON data (indicates timeout or crash): 
    bm_fullstack_streaming_pump.BM_PumpStreamServerToClient_SockPair__512.counters.old: 1


[microbenchmarks] Performance differences noted:
Benchmark                            cpu_time    real_time
-----------------------------------  ----------  -----------
BM_ClosureInitAgainstCombiner        -33%        -33%
BM_ErrorStringOnNewError<ErrorNone>  -9%         -9%

@grpc-testing
Copy link
Copy Markdown

Corrupt JSON data (indicates timeout or crash): 
    bm_fullstack_streaming_pump.BM_PumpStreamServerToClient_SockPair__512.opt.old: 1


[microbenchmarks] Performance differences noted:
Benchmark                                   cpu_time    real_time
------------------------------------------  ----------  -----------
BM_HasClearGrpcStatus<ErrorWithGrpcStatus>  +7%         +7%
BM_MetadataRefUnrefExternal                 -5%         -5%

@grpc-testing
Copy link
Copy Markdown

****************************************************************

libgrpc.so

     VM SIZE                                                                                            FILE SIZE
 ++++++++++++++ GROWING                                                                              ++++++++++++++
  +0.6% +3.26Ki [None]                                                                                +189Ki  +3.1%
      +0.6% +3.07Ki [Unmapped]                                                                            +189Ki  +3.1%
      [NEW]     +64 vtable for grpc_core::FakeResolver                                                       +64  [NEW]
      [NEW]     +64 vtable for grpc_core::(anonymous namespace)::AresDnsResolver                             +64  [NEW]
      [NEW]     +64 vtable for grpc_core::(anonymous namespace)::SockaddrResolver                            +64  [NEW]
      [NEW]     +64 vtable for grpc_core::(anonymous namespace)::NativeDnsResolver                           +64  [NEW]
      [NEW]     +64 vtable for grpc_core::Resolver                                                           +64  [NEW]
      [NEW]     +56 vtable for grpc_core::(anonymous namespace)::FakeResolverFactory                         +56  [NEW]
      [NEW]     +56 vtable for grpc_core::(anonymous namespace)::IPv4ResolverFactory                         +56  [NEW]
      [NEW]     +56 vtable for grpc_core::(anonymous namespace)::IPv6ResolverFactory                         +56  [NEW]
      [NEW]     +56 vtable for grpc_core::(anonymous namespace)::UnixResolverFactory                         +56  [NEW]
      [NEW]     +56 vtable for grpc_core::(anonymous namespace)::AresDnsResolverFactory                      +56  [NEW]
      [NEW]     +56 vtable for grpc_core::(anonymous namespace)::NativeDnsResolverFactory                    +56  [NEW]
      [NEW]     +40 vtable for grpc_core::InternallyRefCountedWithTracing<grpc_core::Resolver>               +40  [NEW]
      [NEW]     +32 vtable for grpc_core::RefCounted<grpc_core::FakeResolverResponseGenerator>               +32  [NEW]
      [NEW]     +32 vtable for grpc_core::FakeResolverResponseGenerator                                      +32  [NEW]
      [NEW]     +32 grpc_lb_policy_grpclb_build_lb_channel_args(grpc_slice_hash_table*, grpc_core::FakeR     +32  [NEW]
      [NEW]     +24 grpc_core::(anonymous namespace)::response_generator_arg_vtable                          +24  [NEW]
      [NEW]     +16 grpc_core::(anonymous namespace)::AresDnsResolver::OnResolvedLocked(void*, grpc_erro       0  [ = ]
      [NEW]     +12 grpc_core::(anonymous namespace)::kDefaultPort                                           +12  [NEW]
      [NEW]      +8 grpc_core::(anonymous namespace)::g_state                                                  0  [ = ]
  +171% +2.23Ki src/core/ext/filters/client_channel/resolver_registry.cc                             +2.23Ki  +171%
      [NEW]    +782 grpc_core::ResolverRegistry::CreateResolver                                             +782  [NEW]
      [NEW]    +730 grpc_core::ResolverRegistry::GetDefaultAuthority                                        +730  [NEW]
      [NEW]    +666 grpc_core::ResolverRegistry::AddDefaultPrefixIfNeeded                                   +666  [NEW]
      [NEW]    +541 grpc_core::ResolverRegistry::Builder::RegisterResolverFactory                           +541  [NEW]
      [NEW]    +283 grpc_core::ResolverRegistry::Builder::ShutdownRegistry                                  +283  [NEW]
      [NEW]    +225 grpc_core::ResolverRegistry::LookupResolverFactory                                      +225  [NEW]
      [NEW]    +165 grpc_core::ResolverRegistry::Builder::SetDefaultPrefix                                  +165  [NEW]
      [NEW]     +96 grpc_core::ResolverRegistry::Builder::InitRegistry                                       +96  [NEW]
      [NEW]     +47 grpc_core::(anonymous namespace)::RegistryState::FindResolverFactory(char const*, gr     +47  [NEW]
      [NEW]     +32 grpc_core::ResolverFactory::GetDefaultAuthority(grpc_uri*) const                         +32  [NEW]
      [NEW]      +9 grpc_core::ResolverFactory::~ResolverFactory                                              +9  [NEW]
      [NEW]      +2 grpc_core::ResolverFactory::~ResolverFactory                                              +2  [NEW]
  +5.0%    +695 src/core/ext/filters/client_channel/client_channel.cc                                   +695  +5.0%
      [NEW]    +301 waiting_for_pick_batches_fail(grpc_call_element*, grpc_error*) [clone .isra.6]          +301  [NEW]
       +26%    +252 cc_init_channel_elem                                                                    +252   +26%
       +13%    +104 start_transport_op_locked                                                               +104   +13%
      +3.5%     +98 on_resolver_result_changed_locked                                                        +98  +3.5%
      +489%     +88 shutdown_resolver_locked                                                                 +88  +489%
      [NEW]     +85 grpc_core::Resolver::Orphan                                                              +85  [NEW]
      [NEW]     +50 grpc_core::Resolver::ShutdownAndUnrefLocked                                              +50  [NEW]
      +3.9%     +11 [Unmapped]                                                                               +11  +3.9%
      +2.6%      +7 cc_destroy_channel_elem                                                                   +7  +2.6%
   +44%    +576 src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc              +576   +44%
      [NEW]    +668 grpc_core::(anonymous namespace)::CreateSockaddrResolver                                +668  [NEW]
      +450%    +198 grpc_resolver_sockaddr_init                                                             +198  +450%
      [NEW]    +175 grpc_core::(anonymous namespace)::SockaddrResolver::ShutdownLocked                      +175  [NEW]
      [NEW]    +142 grpc_core::(anonymous namespace)::SockaddrResolver::MaybeFinishNextLocked() [clone .    +142  [NEW]
       +80%     +88 [Unmapped]                                                                               +88   +80%
      [NEW]     +84 grpc_core::(anonymous namespace)::SockaddrResolver::NextLocked                           +84  [NEW]
      [NEW]     +69 grpc_core::(anonymous namespace)::IPv4ResolverFactory::CreateResolver(grpc_core::Res     +69  [NEW]
      [NEW]     +69 grpc_core::(anonymous namespace)::IPv6ResolverFactory::CreateResolver(grpc_core::Res     +69  [NEW]
      [NEW]     +69 grpc_core::(anonymous namespace)::UnixResolverFactory::CreateResolver(grpc_core::Res     +69  [NEW]
      [NEW]     +41 grpc_core::(anonymous namespace)::SockaddrResolver::~SockaddrResolver                    +41  [NEW]
      [NEW]     +24 grpc_core::(anonymous namespace)::UnixResolverFactory::GetDefaultAuthority(grpc_uri*     +24  [NEW]
      [NEW]     +18 grpc_core::(anonymous namespace)::SockaddrResolver::RequestReresolutionLocked            +18  [NEW]
      [NEW]     +14 grpc_core::(anonymous namespace)::SockaddrResolver::~SockaddrResolver                    +14  [NEW]
      [NEW]      +9 grpc_core::(anonymous namespace)::IPv4ResolverFactory::~IPv4ResolverFactory               +9  [NEW]
      [NEW]      +9 grpc_core::(anonymous namespace)::IPv6ResolverFactory::~IPv6ResolverFactory               +9  [NEW]
      [NEW]      +9 grpc_core::(anonymous namespace)::UnixResolverFactory::~UnixResolverFactory               +9  [NEW]
      [NEW]      +8 grpc_core::(anonymous namespace)::IPv4ResolverFactory::scheme() const                     +8  [NEW]
      [NEW]      +8 grpc_core::(anonymous namespace)::IPv6ResolverFactory::scheme() const                     +8  [NEW]
      [NEW]      +8 grpc_core::(anonymous namespace)::UnixResolverFactory::scheme() const                     +8  [NEW]
      [NEW]      +6 [Other]                                                                                   +6  [NEW]
      [NEW]      +2 grpc_core::(anonymous namespace)::IPv4ResolverFactory::~IPv4ResolverFactory               +2  [NEW]
   +12%    +272 src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc                 +272   +12%
      [NEW]    +715 grpc_core::(anonymous namespace)::NativeDnsResolver::OnResolvedLocked                   +715  [NEW]
      [NEW]    +526 grpc_core::(anonymous namespace)::NativeDnsResolverFactory::CreateResolver(grpc_core    +526  [NEW]
      [NEW]    +199 grpc_core::(anonymous namespace)::NativeDnsResolver::ShutdownLocked                     +199  [NEW]
      [NEW]    +196 grpc_core::(anonymous namespace)::NativeDnsResolver::MaybeStartResolvingLocked          +196  [NEW]
      [NEW]    +145 grpc_core::(anonymous namespace)::NativeDnsResolver::StartResolvingLocked               +145  [NEW]
       +92%    +140 grpc_resolver_dns_native_init                                                           +140   +92%
      [NEW]    +129 grpc_core::(anonymous namespace)::NativeDnsResolver::MaybeFinishNextLocked              +129  [NEW]
      [NEW]     +92 grpc_core::(anonymous namespace)::NativeDnsResolver::NextLocked                          +92  [NEW]
      [NEW]     +69 grpc_core::(anonymous namespace)::NativeDnsResolver::OnNextResolutionLocked              +69  [NEW]
      [NEW]     +67 grpc_core::(anonymous namespace)::NativeDnsResolver::~NativeDnsResolver                  +67  [NEW]
       +54%     +49 [Unmapped]                                                                               +49   +54%
      [NEW]     +21 grpc_core::(anonymous namespace)::NativeDnsResolver::RequestReresolutionLocked           +21  [NEW]
      [NEW]     +14 grpc_core::(anonymous namespace)::NativeDnsResolver::~NativeDnsResolver                  +14  [NEW]
      [NEW]      +9 grpc_core::(anonymous namespace)::NativeDnsResolverFactory::~NativeDnsResolverFactor      +9  [NEW]
      [NEW]      +8 grpc_core::(anonymous namespace)::NativeDnsResolverFactory::scheme() const                +8  [NEW]
      [NEW]      +2 grpc_core::(anonymous namespace)::NativeDnsResolverFactory::~NativeDnsResolverFactor      +2  [NEW]
  +6.4%    +240 src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc            +240  +6.4%
      [NEW] +1.66Ki grpc_core::(anonymous namespace)::AresDnsResolver::OnResolvedLocked                  +1.66Ki  [NEW]
      [NEW]    +579 grpc_core::(anonymous namespace)::AresDnsResolverFactory::CreateResolver(grpc_core::    +579  [NEW]
      [NEW]    +231 grpc_core::(anonymous namespace)::AresDnsResolver::ShutdownLocked                       +231  [NEW]
      [NEW]    +202 grpc_core::(anonymous namespace)::AresDnsResolver::StartResolvingLocked                 +202  [NEW]
      [NEW]    +196 grpc_core::(anonymous namespace)::AresDnsResolver::MaybeStartResolvingLocked            +196  [NEW]
      [NEW]    +169 grpc_core::(anonymous namespace)::AresDnsResolver::MaybeFinishNextLocked                +169  [NEW]
      [NEW]    +148 grpc_core::(anonymous namespace)::AresDnsResolver::NextLocked                           +148  [NEW]
      +100%    +121 grpc_resolver_dns_ares_init                                                             +121  +100%
      [NEW]    +104 grpc_core::(anonymous namespace)::AresDnsResolver::~AresDnsResolver                     +104  [NEW]
      [NEW]     +84 grpc_core::(anonymous namespace)::ValueInJsonArray(grpc_json*, char const*) [clone .     +84  [NEW]
      [NEW]     +72 grpc_core::(anonymous namespace)::AresDnsResolver::OnNextResolutionLocked                +72  [NEW]
      [NEW]     +21 grpc_core::(anonymous namespace)::AresDnsResolver::RequestReresolutionLocked             +21  [NEW]
      [NEW]     +14 grpc_core::(anonymous namespace)::AresDnsResolver::~AresDnsResolver                      +14  [NEW]
      [NEW]      +9 grpc_core::(anonymous namespace)::AresDnsResolverFactory::~AresDnsResolverFactory         +9  [NEW]
      [NEW]      +8 grpc_core::(anonymous namespace)::AresDnsResolverFactory::scheme() const                  +8  [NEW]
      +4.8%      +7 [Unmapped]                                                                                +7  +4.8%
      [NEW]      +2 grpc_core::(anonymous namespace)::AresDnsResolverFactory::~AresDnsResolverFactory         +2  [NEW]
  +1.5%    +214 src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc                          +214  +1.5%
      [NEW]    +801 build_lb_channel_args(grpc_lb_addresses const*, grpc_core::FakeResolverResponseGener    +801  [NEW]
       +12%    +126 glb_create                                                                              +126   +12%
       +32%     +64 glb_destroy                                                                              +64   +32%
      [NEW]      +9 grpc_core::RefCounted<grpc_core::FakeResolverResponseGenerator>::~RefCounted              +9  [NEW]
      [NEW]      +9 grpc_core::FakeResolverResponseGenerator::~FakeResolverResponseGenerator                  +9  [NEW]
      +0.5%      +2 [Unmapped]                                                                                +2  +0.5%
      [NEW]      +2 grpc_core::RefCounted<grpc_core::FakeResolverResponseGenerator>::~RefCounted              +2  [NEW]
      [NEW]      +2 grpc_core::FakeResolverResponseGenerator::~FakeResolverResponseGenerator                  +2  [NEW]
   +98%    +163 src/core/ext/filters/client_channel/resolver.cc                                         +163   +98%
      [NEW]     +82 grpc_core::Resolver::Resolver                                                            +82  [NEW]
      [NEW]     +47 grpc_core::Orphanable::Orphan                                                            +47  [NEW]
      [NEW]     +47 grpc_core::Resolver::NextLocked                                                          +47  [NEW]
      [NEW]     +47 grpc_core::Resolver::ShutdownLocked                                                      +47  [NEW]
      [NEW]     +47 grpc_core::Resolver::RequestReresolutionLocked                                           +47  [NEW]
      [NEW]     +23 grpc_core::Resolver::~Resolver                                                           +23  [NEW]
      [NEW]     +14 grpc_core::Resolver::~Resolver                                                           +14  [NEW]
      [NEW]      +9 grpc_core::InternallyRefCountedWithTracing<grpc_core::Resolver>::~InternallyRefCount      +9  [NEW]
      [NEW]      +2 grpc_core::InternallyRefCountedWithTracing<grpc_core::Resolver>::~InternallyRefCount      +2  [NEW]
   +11%    +160 src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc                      +160   +11%
      [NEW]    +209 grpc_core::FakeResolverResponseGenerator::SetResponse                                   +209  [NEW]
      [NEW]    +181 grpc_core::FakeResolverResponseGenerator::SetReresolutionResponse                       +181  [NEW]
      [NEW]    +175 grpc_core::FakeResolver::ShutdownLocked                                                 +175  [NEW]
      [NEW]    +121 grpc_core::FakeResolver::FakeResolver                                                   +121  [NEW]
      [NEW]    +105 grpc_core::FakeResolver::MaybeFinishNextLocked                                          +105  [NEW]
      +825%     +99 grpc_resolver_fake_init                                                                  +99  +825%
      [NEW]     +97 grpc_core::FakeResolver::RequestReresolutionLocked                                       +97  [NEW]
      [NEW]     +78 grpc_core::FakeResolverResponseGenerator::SetResponseLocked                              +78  [NEW]
      [NEW]     +67 grpc_core::FakeResolver::NextLocked                                                      +67  [NEW]
      [NEW]     +63 grpc_core::FakeResolver::~FakeResolver                                                   +63  [NEW]
      [NEW]     +52 grpc_core::FakeResolverResponseGenerator::GetFromArgs                                    +52  [NEW]
      [NEW]     +51 grpc_core::(anonymous namespace)::FakeResolverFactory::CreateResolver(grpc_core::Res     +51  [NEW]
      [NEW]     +48 grpc_core::FakeResolverResponseGenerator::SetReresolutionResponseLocked                  +48  [NEW]
      [NEW]     +41 grpc_core::(anonymous namespace)::response_generator_arg_destroy                         +41  [NEW]
      [NEW]     +36 grpc_core::FakeResolverResponseGenerator::MakeChannelArg                                 +36  [NEW]
      [NEW]     +18 grpc_core::(anonymous namespace)::response_generator_arg_copy                            +18  [NEW]
      [NEW]     +17 grpc_core::(anonymous namespace)::response_generator_cmp                                 +17  [NEW]
      [NEW]     +14 grpc_core::FakeResolver::~FakeResolver                                                   +14  [NEW]
      [NEW]      +9 grpc_core::(anonymous namespace)::FakeResolverFactory::~FakeResolverFactory               +9  [NEW]
      [NEW]      +8 grpc_core::(anonymous namespace)::FakeResolverFactory::scheme() const                     +8  [NEW]
      [NEW]      +2 [Other]                                                                                   +2  [NEW]
  +7.9%     +32 src/core/ext/filters/client_channel/client_channel_plugin.cc                             +32  +7.9%
      +9.0%     +23 set_default_host_if_unset                                                                +23  +9.0%
       +64%      +9 [Unmapped]                                                                                +9   +64%
  +2.0%     +16 src/core/ext/transport/chttp2/client/insecure/channel_create.cc                          +16  +2.0%
      +7.5%     +16 client_channel_factory_create_channel                                                    +16  +7.5%
  +0.9%     +16 src/core/ext/transport/chttp2/client/secure/secure_channel_create.cc                     +16  +0.9%
      +7.5%     +16 client_channel_factory_create_channel                                                    +16  +7.5%

 -------------- SHRINKING                                                                            --------------
  [DEL]     -83 src/core/ext/filters/client_channel/resolver_factory.cc                                  -83  [DEL]
      [DEL]     -34 [Unmapped]                                                                               -34  [DEL]
      [DEL]     -19 grpc_resolver_factory_create_resolver                                                    -19  [DEL]
      [DEL]     -19 grpc_resolver_factory_get_default_authority                                              -19  [DEL]
      [DEL]      -6 grpc_resolver_factory_unref                                                               -6  [DEL]
      [DEL]      -5 grpc_resolver_factory_ref                                                                 -5  [DEL]

  +0.7% +7.74Ki TOTAL                                                                                 +194Ki  +2.9%


****************************************************************

libgrpc++.so

     VM SIZE        FILE SIZE
 ++++++++++++++  ++++++++++++++

  [ = ]       0        0  [ = ]



@grpc-testing
Copy link
Copy Markdown

[trickle] No significant performance differences

@grpc-testing
Copy link
Copy Markdown

Corrupt JSON data (indicates timeout or crash): 
    bm_fullstack_streaming_pump.BM_PumpStreamServerToClient_SockPair__1.opt.old: 1
    bm_fullstack_streaming_pump.BM_PumpStreamServerToClient_MinSockPair__0.opt.new: 1


[microbenchmarks] No significant performance differences

@grpc-testing
Copy link
Copy Markdown

[microbenchmarks] No significant performance differences

@dgquintas
Copy link
Copy Markdown
Contributor

Reviewed 51 of 51 files at r10.
Review status: all files reviewed at latest revision, 5 unresolved discussions.


src/core/ext/filters/client_channel/client_channel.cc, line 571 at r10 (raw file):

        gpr_log(GPR_DEBUG, "chand=%p: shutting down resolver", chand);
      }
      chand->resolver.reset(nullptr);

nit: the nullptr argument isn't needed.


src/core/ext/filters/client_channel/resolver.h, line 54 at r10 (raw file):

  /// When the new result is available, sets \a *result to the new result
  /// and schedules \a on_complete for execution.
  /// If resolution is fatally broken, sets \a *result to NULL and

s/NULL/nullptr


src/core/ext/filters/client_channel/resolver.h, line 72 at r10 (raw file):

  /// re-resolve immediately upon receiving this call; it may instead
  /// elect to delay based on some configured minimum time between
  /// queries, to avoid hammering the name service with queries.

We may want to mention GRPC_ARG_DNS_MIN_TIME_BETWEEN_RESOLUTIONS_MS here, so that doxygen automatically links to the symbol and its docs.


src/core/ext/filters/client_channel/resolver_registry.cc, line 57 at r10 (raw file):

  }

  ResolverFactory* FindResolverFactory(const char* target, grpc_uri** uri,

why does this need to modify uri? It should at least have a comment about it, because a find-type method modifying its input arguments is surprising.


src/core/ext/filters/client_channel/resolver_registry.cc, line 80 at r10 (raw file):

 private:
  InlinedVector<UniquePtr<ResolverFactory>, 10> factories_;

the magic number 10 should be behind a named constexpr variable to document its meaning.


Comments from Reviewable

@dgquintas
Copy link
Copy Markdown
Contributor

Looks great. Just minor comments/suggestions.


Review status: all files reviewed at latest revision, 5 unresolved discussions.


Comments from Reviewable

@markdroth
Copy link
Copy Markdown
Member Author

Review status: all files reviewed at latest revision, 5 unresolved discussions.


src/core/ext/filters/client_channel/client_channel.cc, line 571 at r10 (raw file):

Previously, dgquintas (David G. Quintas) wrote…

nit: the nullptr argument isn't needed.

Done.


src/core/ext/filters/client_channel/resolver.h, line 54 at r10 (raw file):

Previously, dgquintas (David G. Quintas) wrote…

s/NULL/nullptr

Done.


src/core/ext/filters/client_channel/resolver.h, line 72 at r10 (raw file):

Previously, dgquintas (David G. Quintas) wrote…

We may want to mention GRPC_ARG_DNS_MIN_TIME_BETWEEN_RESOLUTIONS_MS here, so that doxygen automatically links to the symbol and its docs.

That arg is specific to the DNS resolver, not part of the generic resolver API, so I don't think it's appropriate to mention it here.


src/core/ext/filters/client_channel/resolver_registry.cc, line 57 at r10 (raw file):

Previously, dgquintas (David G. Quintas) wrote…

why does this need to modify uri? It should at least have a comment about it, because a find-type method modifying its input arguments is surprising.

Added a comment explaining the API here. I agree that it's a little messy, but it's only used internally to this file, so I think it's fine.


src/core/ext/filters/client_channel/resolver_registry.cc, line 80 at r10 (raw file):

Previously, dgquintas (David G. Quintas) wrote…

the magic number 10 should be behind a named constexpr variable to document its meaning.

I think it's very unlikely that this will ever need to be changed. I've added a comment about it.


Comments from Reviewable

@grpc-testing
Copy link
Copy Markdown

****************************************************************

libgrpc.so

     VM SIZE                                                                                            FILE SIZE
 ++++++++++++++ GROWING                                                                              ++++++++++++++
  +0.6% +3.28Ki [None]                                                                                +189Ki  +3.1%
      +0.6% +3.09Ki [Unmapped]                                                                            +189Ki  +3.1%
      [NEW]     +64 vtable for grpc_core::FakeResolver                                                       +64  [NEW]
      [NEW]     +64 vtable for grpc_core::(anonymous namespace)::AresDnsResolver                             +64  [NEW]
      [NEW]     +64 vtable for grpc_core::(anonymous namespace)::SockaddrResolver                            +64  [NEW]
      [NEW]     +64 vtable for grpc_core::(anonymous namespace)::NativeDnsResolver                           +64  [NEW]
      [NEW]     +64 vtable for grpc_core::Resolver                                                           +64  [NEW]
      [NEW]     +56 vtable for grpc_core::(anonymous namespace)::FakeResolverFactory                         +56  [NEW]
      [NEW]     +56 vtable for grpc_core::(anonymous namespace)::IPv4ResolverFactory                         +56  [NEW]
      [NEW]     +56 vtable for grpc_core::(anonymous namespace)::IPv6ResolverFactory                         +56  [NEW]
      [NEW]     +56 vtable for grpc_core::(anonymous namespace)::UnixResolverFactory                         +56  [NEW]
      [NEW]     +56 vtable for grpc_core::(anonymous namespace)::AresDnsResolverFactory                      +56  [NEW]
      [NEW]     +56 vtable for grpc_core::(anonymous namespace)::NativeDnsResolverFactory                    +56  [NEW]
      [NEW]     +40 vtable for grpc_core::InternallyRefCountedWithTracing<grpc_core::Resolver>               +40  [NEW]
      [NEW]     +32 vtable for grpc_core::RefCounted<grpc_core::FakeResolverResponseGenerator>               +32  [NEW]
      [NEW]     +32 vtable for grpc_core::FakeResolverResponseGenerator                                      +32  [NEW]
      [NEW]     +32 grpc_lb_policy_grpclb_build_lb_channel_args(grpc_slice_hash_table*, grpc_core::FakeR     +32  [NEW]
      [NEW]     +24 grpc_core::(anonymous namespace)::response_generator_arg_vtable                          +24  [NEW]
      [NEW]     +16 grpc_core::(anonymous namespace)::AresDnsResolver::OnResolvedLocked(void*, grpc_erro       0  [ = ]
      [NEW]     +12 grpc_core::(anonymous namespace)::kDefaultPort                                           +12  [NEW]
      [NEW]      +8 grpc_core::(anonymous namespace)::g_state                                                  0  [ = ]
  +171% +2.23Ki src/core/ext/filters/client_channel/resolver_registry.cc                             +2.23Ki  +171%
      [NEW]    +782 grpc_core::ResolverRegistry::CreateResolver                                             +782  [NEW]
      [NEW]    +730 grpc_core::ResolverRegistry::GetDefaultAuthority                                        +730  [NEW]
      [NEW]    +666 grpc_core::ResolverRegistry::AddDefaultPrefixIfNeeded                                   +666  [NEW]
      [NEW]    +541 grpc_core::ResolverRegistry::Builder::RegisterResolverFactory                           +541  [NEW]
      [NEW]    +283 grpc_core::ResolverRegistry::Builder::ShutdownRegistry                                  +283  [NEW]
      [NEW]    +225 grpc_core::ResolverRegistry::LookupResolverFactory                                      +225  [NEW]
      [NEW]    +165 grpc_core::ResolverRegistry::Builder::SetDefaultPrefix                                  +165  [NEW]
      [NEW]     +96 grpc_core::ResolverRegistry::Builder::InitRegistry                                       +96  [NEW]
      [NEW]     +47 grpc_core::(anonymous namespace)::RegistryState::FindResolverFactory(char const*, gr     +47  [NEW]
      [NEW]     +32 grpc_core::ResolverFactory::GetDefaultAuthority(grpc_uri*) const                         +32  [NEW]
      [NEW]      +9 grpc_core::ResolverFactory::~ResolverFactory                                              +9  [NEW]
      [NEW]      +2 grpc_core::ResolverFactory::~ResolverFactory                                              +2  [NEW]
  +5.0%    +695 src/core/ext/filters/client_channel/client_channel.cc                                   +695  +5.0%
      [NEW]    +301 waiting_for_pick_batches_fail(grpc_call_element*, grpc_error*) [clone .isra.6]          +301  [NEW]
       +26%    +252 cc_init_channel_elem                                                                    +252   +26%
       +13%    +104 start_transport_op_locked                                                               +104   +13%
      +3.5%     +98 on_resolver_result_changed_locked                                                        +98  +3.5%
      +489%     +88 shutdown_resolver_locked                                                                 +88  +489%
      [NEW]     +85 grpc_core::Resolver::Orphan                                                              +85  [NEW]
      [NEW]     +50 grpc_core::Resolver::ShutdownAndUnrefLocked                                              +50  [NEW]
      +3.8%     +11 [Unmapped]                                                                               +11  +3.8%
      +2.6%      +7 cc_destroy_channel_elem                                                                   +7  +2.6%
   +44%    +576 src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc              +576   +44%
      [NEW]    +668 grpc_core::(anonymous namespace)::CreateSockaddrResolver                                +668  [NEW]
      +450%    +198 grpc_resolver_sockaddr_init                                                             +198  +450%
      [NEW]    +175 grpc_core::(anonymous namespace)::SockaddrResolver::ShutdownLocked                      +175  [NEW]
      [NEW]    +142 grpc_core::(anonymous namespace)::SockaddrResolver::MaybeFinishNextLocked() [clone .    +142  [NEW]
       +80%     +88 [Unmapped]                                                                               +88   +80%
      [NEW]     +84 grpc_core::(anonymous namespace)::SockaddrResolver::NextLocked                           +84  [NEW]
      [NEW]     +69 grpc_core::(anonymous namespace)::IPv4ResolverFactory::CreateResolver(grpc_core::Res     +69  [NEW]
      [NEW]     +69 grpc_core::(anonymous namespace)::IPv6ResolverFactory::CreateResolver(grpc_core::Res     +69  [NEW]
      [NEW]     +69 grpc_core::(anonymous namespace)::UnixResolverFactory::CreateResolver(grpc_core::Res     +69  [NEW]
      [NEW]     +41 grpc_core::(anonymous namespace)::SockaddrResolver::~SockaddrResolver                    +41  [NEW]
      [NEW]     +24 grpc_core::(anonymous namespace)::UnixResolverFactory::GetDefaultAuthority(grpc_uri*     +24  [NEW]
      [NEW]     +18 grpc_core::(anonymous namespace)::SockaddrResolver::RequestReresolutionLocked            +18  [NEW]
      [NEW]     +14 grpc_core::(anonymous namespace)::SockaddrResolver::~SockaddrResolver                    +14  [NEW]
      [NEW]      +9 grpc_core::(anonymous namespace)::IPv4ResolverFactory::~IPv4ResolverFactory               +9  [NEW]
      [NEW]      +9 grpc_core::(anonymous namespace)::IPv6ResolverFactory::~IPv6ResolverFactory               +9  [NEW]
      [NEW]      +9 grpc_core::(anonymous namespace)::UnixResolverFactory::~UnixResolverFactory               +9  [NEW]
      [NEW]      +8 grpc_core::(anonymous namespace)::IPv4ResolverFactory::scheme() const                     +8  [NEW]
      [NEW]      +8 grpc_core::(anonymous namespace)::IPv6ResolverFactory::scheme() const                     +8  [NEW]
      [NEW]      +8 grpc_core::(anonymous namespace)::UnixResolverFactory::scheme() const                     +8  [NEW]
      [NEW]      +6 [Other]                                                                                   +6  [NEW]
      [NEW]      +2 grpc_core::(anonymous namespace)::IPv4ResolverFactory::~IPv4ResolverFactory               +2  [NEW]
   +12%    +272 src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc                 +272   +12%
      [NEW]    +715 grpc_core::(anonymous namespace)::NativeDnsResolver::OnResolvedLocked                   +715  [NEW]
      [NEW]    +526 grpc_core::(anonymous namespace)::NativeDnsResolverFactory::CreateResolver(grpc_core    +526  [NEW]
      [NEW]    +199 grpc_core::(anonymous namespace)::NativeDnsResolver::ShutdownLocked                     +199  [NEW]
      [NEW]    +196 grpc_core::(anonymous namespace)::NativeDnsResolver::MaybeStartResolvingLocked          +196  [NEW]
      [NEW]    +145 grpc_core::(anonymous namespace)::NativeDnsResolver::StartResolvingLocked               +145  [NEW]
       +92%    +140 grpc_resolver_dns_native_init                                                           +140   +92%
      [NEW]    +129 grpc_core::(anonymous namespace)::NativeDnsResolver::MaybeFinishNextLocked              +129  [NEW]
      [NEW]     +92 grpc_core::(anonymous namespace)::NativeDnsResolver::NextLocked                          +92  [NEW]
      [NEW]     +69 grpc_core::(anonymous namespace)::NativeDnsResolver::OnNextResolutionLocked              +69  [NEW]
      [NEW]     +67 grpc_core::(anonymous namespace)::NativeDnsResolver::~NativeDnsResolver                  +67  [NEW]
       +54%     +49 [Unmapped]                                                                               +49   +54%
      [NEW]     +21 grpc_core::(anonymous namespace)::NativeDnsResolver::RequestReresolutionLocked           +21  [NEW]
      [NEW]     +14 grpc_core::(anonymous namespace)::NativeDnsResolver::~NativeDnsResolver                  +14  [NEW]
      [NEW]      +9 grpc_core::(anonymous namespace)::NativeDnsResolverFactory::~NativeDnsResolverFactor      +9  [NEW]
      [NEW]      +8 grpc_core::(anonymous namespace)::NativeDnsResolverFactory::scheme() const                +8  [NEW]
      [NEW]      +2 grpc_core::(anonymous namespace)::NativeDnsResolverFactory::~NativeDnsResolverFactor      +2  [NEW]
  +6.4%    +240 src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc            +240  +6.4%
      [NEW] +1.66Ki grpc_core::(anonymous namespace)::AresDnsResolver::OnResolvedLocked                  +1.66Ki  [NEW]
      [NEW]    +579 grpc_core::(anonymous namespace)::AresDnsResolverFactory::CreateResolver(grpc_core::    +579  [NEW]
      [NEW]    +231 grpc_core::(anonymous namespace)::AresDnsResolver::ShutdownLocked                       +231  [NEW]
      [NEW]    +202 grpc_core::(anonymous namespace)::AresDnsResolver::StartResolvingLocked                 +202  [NEW]
      [NEW]    +196 grpc_core::(anonymous namespace)::AresDnsResolver::MaybeStartResolvingLocked            +196  [NEW]
      [NEW]    +169 grpc_core::(anonymous namespace)::AresDnsResolver::MaybeFinishNextLocked                +169  [NEW]
      [NEW]    +148 grpc_core::(anonymous namespace)::AresDnsResolver::NextLocked                           +148  [NEW]
      +100%    +121 grpc_resolver_dns_ares_init                                                             +121  +100%
      [NEW]    +104 grpc_core::(anonymous namespace)::AresDnsResolver::~AresDnsResolver                     +104  [NEW]
      [NEW]     +84 grpc_core::(anonymous namespace)::ValueInJsonArray(grpc_json*, char const*) [clone .     +84  [NEW]
      [NEW]     +72 grpc_core::(anonymous namespace)::AresDnsResolver::OnNextResolutionLocked                +72  [NEW]
      [NEW]     +21 grpc_core::(anonymous namespace)::AresDnsResolver::RequestReresolutionLocked             +21  [NEW]
      [NEW]     +14 grpc_core::(anonymous namespace)::AresDnsResolver::~AresDnsResolver                      +14  [NEW]
      [NEW]      +9 grpc_core::(anonymous namespace)::AresDnsResolverFactory::~AresDnsResolverFactory         +9  [NEW]
      [NEW]      +8 grpc_core::(anonymous namespace)::AresDnsResolverFactory::scheme() const                  +8  [NEW]
      +4.8%      +7 [Unmapped]                                                                                +7  +4.8%
      [NEW]      +2 grpc_core::(anonymous namespace)::AresDnsResolverFactory::~AresDnsResolverFactory         +2  [NEW]
  +1.5%    +214 src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc                          +214  +1.5%
      [NEW]    +801 build_lb_channel_args(grpc_lb_addresses const*, grpc_core::FakeResolverResponseGener    +801  [NEW]
       +12%    +126 glb_create                                                                              +126   +12%
       +32%     +64 glb_destroy                                                                              +64   +32%
      [NEW]      +9 grpc_core::RefCounted<grpc_core::FakeResolverResponseGenerator>::~RefCounted              +9  [NEW]
      [NEW]      +9 grpc_core::FakeResolverResponseGenerator::~FakeResolverResponseGenerator                  +9  [NEW]
      +0.5%      +2 [Unmapped]                                                                                +2  +0.5%
      [NEW]      +2 grpc_core::RefCounted<grpc_core::FakeResolverResponseGenerator>::~RefCounted              +2  [NEW]
      [NEW]      +2 grpc_core::FakeResolverResponseGenerator::~FakeResolverResponseGenerator                  +2  [NEW]
   +98%    +163 src/core/ext/filters/client_channel/resolver.cc                                         +163   +98%
      [NEW]     +82 grpc_core::Resolver::Resolver                                                            +82  [NEW]
      [NEW]     +47 grpc_core::Orphanable::Orphan                                                            +47  [NEW]
      [NEW]     +47 grpc_core::Resolver::NextLocked                                                          +47  [NEW]
      [NEW]     +47 grpc_core::Resolver::ShutdownLocked                                                      +47  [NEW]
      [NEW]     +47 grpc_core::Resolver::RequestReresolutionLocked                                           +47  [NEW]
      [NEW]     +23 grpc_core::Resolver::~Resolver                                                           +23  [NEW]
      [NEW]     +14 grpc_core::Resolver::~Resolver                                                           +14  [NEW]
      [NEW]      +9 grpc_core::InternallyRefCountedWithTracing<grpc_core::Resolver>::~InternallyRefCount      +9  [NEW]
      [NEW]      +2 grpc_core::InternallyRefCountedWithTracing<grpc_core::Resolver>::~InternallyRefCount      +2  [NEW]
   +11%    +160 src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc                      +160   +11%
      [NEW]    +209 grpc_core::FakeResolverResponseGenerator::SetResponse                                   +209  [NEW]
      [NEW]    +181 grpc_core::FakeResolverResponseGenerator::SetReresolutionResponse                       +181  [NEW]
      [NEW]    +175 grpc_core::FakeResolver::ShutdownLocked                                                 +175  [NEW]
      [NEW]    +121 grpc_core::FakeResolver::FakeResolver                                                   +121  [NEW]
      [NEW]    +105 grpc_core::FakeResolver::MaybeFinishNextLocked                                          +105  [NEW]
      +825%     +99 grpc_resolver_fake_init                                                                  +99  +825%
      [NEW]     +97 grpc_core::FakeResolver::RequestReresolutionLocked                                       +97  [NEW]
      [NEW]     +78 grpc_core::FakeResolverResponseGenerator::SetResponseLocked                              +78  [NEW]
      [NEW]     +67 grpc_core::FakeResolver::NextLocked                                                      +67  [NEW]
      [NEW]     +63 grpc_core::FakeResolver::~FakeResolver                                                   +63  [NEW]
      [NEW]     +52 grpc_core::FakeResolverResponseGenerator::GetFromArgs                                    +52  [NEW]
      [NEW]     +51 grpc_core::(anonymous namespace)::FakeResolverFactory::CreateResolver(grpc_core::Res     +51  [NEW]
      [NEW]     +48 grpc_core::FakeResolverResponseGenerator::SetReresolutionResponseLocked                  +48  [NEW]
      [NEW]     +41 grpc_core::(anonymous namespace)::response_generator_arg_destroy                         +41  [NEW]
      [NEW]     +36 grpc_core::FakeResolverResponseGenerator::MakeChannelArg                                 +36  [NEW]
      [NEW]     +18 grpc_core::(anonymous namespace)::response_generator_arg_copy                            +18  [NEW]
      [NEW]     +17 grpc_core::(anonymous namespace)::response_generator_cmp                                 +17  [NEW]
      [NEW]     +14 grpc_core::FakeResolver::~FakeResolver                                                   +14  [NEW]
      [NEW]      +9 grpc_core::(anonymous namespace)::FakeResolverFactory::~FakeResolverFactory               +9  [NEW]
      [NEW]      +8 grpc_core::(anonymous namespace)::FakeResolverFactory::scheme() const                     +8  [NEW]
      [NEW]      +2 [Other]                                                                                   +2  [NEW]
  +7.9%     +32 src/core/ext/filters/client_channel/client_channel_plugin.cc                             +32  +7.9%
      +9.0%     +23 set_default_host_if_unset                                                                +23  +9.0%
       +64%      +9 [Unmapped]                                                                                +9   +64%
  +2.0%     +16 src/core/ext/transport/chttp2/client/insecure/channel_create.cc                          +16  +2.0%
      +7.5%     +16 client_channel_factory_create_channel                                                    +16  +7.5%
  +0.9%     +16 src/core/ext/transport/chttp2/client/secure/secure_channel_create.cc                     +16  +0.9%
      +7.5%     +16 client_channel_factory_create_channel                                                    +16  +7.5%

 -------------- SHRINKING                                                                            --------------
  [DEL]     -83 src/core/ext/filters/client_channel/resolver_factory.cc                                  -83  [DEL]
      [DEL]     -34 [Unmapped]                                                                               -34  [DEL]
      [DEL]     -19 grpc_resolver_factory_create_resolver                                                    -19  [DEL]
      [DEL]     -19 grpc_resolver_factory_get_default_authority                                              -19  [DEL]
      [DEL]      -6 grpc_resolver_factory_unref                                                               -6  [DEL]
      [DEL]      -5 grpc_resolver_factory_ref                                                                 -5  [DEL]

  +0.7% +7.76Ki TOTAL                                                                                 +194Ki  +2.9%


****************************************************************

libgrpc++.so

     VM SIZE        FILE SIZE
 ++++++++++++++  ++++++++++++++

  [ = ]       0        0  [ = ]



@grpc-testing
Copy link
Copy Markdown

[trickle] No significant performance differences

@grpc-testing
Copy link
Copy Markdown

[microbenchmarks] Performance differences noted:
Benchmark                      cpu_time    real_time
-----------------------------  ----------  -----------
BM_ClosureInitAgainstCombiner  -33%        -33%

Copy link
Copy Markdown
Contributor

@vjpai vjpai left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approval on changes in test/cpp/end2end . No API concerns

@grpc-testing
Copy link
Copy Markdown

****************************************************************

libgrpc.so

     VM SIZE                                                                                            FILE SIZE
 ++++++++++++++ GROWING                                                                              ++++++++++++++
  +0.6% +3.34Ki [None]                                                                                +189Ki  +3.1%
      +0.6% +3.12Ki [Unmapped]                                                                            +189Ki  +3.1%
      [NEW]     +64 vtable for grpc_core::FakeResolver                                                       +64  [NEW]
      [NEW]     +64 vtable for grpc_core::(anonymous namespace)::AresDnsResolver                             +64  [NEW]
      [NEW]     +64 vtable for grpc_core::(anonymous namespace)::SockaddrResolver                            +64  [NEW]
      [NEW]     +64 vtable for grpc_core::(anonymous namespace)::NativeDnsResolver                           +64  [NEW]
      [NEW]     +64 vtable for grpc_core::Resolver                                                           +64  [NEW]
      [NEW]     +56 vtable for grpc_core::(anonymous namespace)::FakeResolverFactory                         +56  [NEW]
      [NEW]     +56 vtable for grpc_core::(anonymous namespace)::IPv4ResolverFactory                         +56  [NEW]
      [NEW]     +56 vtable for grpc_core::(anonymous namespace)::IPv6ResolverFactory                         +56  [NEW]
      [NEW]     +56 vtable for grpc_core::(anonymous namespace)::UnixResolverFactory                         +56  [NEW]
      [NEW]     +56 vtable for grpc_core::(anonymous namespace)::AresDnsResolverFactory                      +56  [NEW]
      [NEW]     +56 vtable for grpc_core::(anonymous namespace)::NativeDnsResolverFactory                    +56  [NEW]
      [NEW]     +40 vtable for grpc_core::InternallyRefCountedWithTracing<grpc_core::Resolver>               +40  [NEW]
      [NEW]     +32 vtable for grpc_core::RefCounted<grpc_core::FakeResolverResponseGenerator>               +32  [NEW]
      [NEW]     +32 vtable for grpc_core::FakeResolverResponseGenerator                                      +32  [NEW]
      [NEW]     +32 grpc_lb_policy_grpclb_build_lb_channel_args(grpc_slice_hash_table*, grpc_core::FakeR     +32  [NEW]
      [NEW]     +24 grpc_core::(anonymous namespace)::response_generator_arg_vtable                          +24  [NEW]
      [NEW]     +16 grpc_core::(anonymous namespace)::AresDnsResolver::OnResolvedLocked(void*, grpc_erro       0  [ = ]
      [NEW]     +12 grpc_core::(anonymous namespace)::kDefaultPort                                           +12  [NEW]
      [NEW]      +8 grpc_core::(anonymous namespace)::g_state                                                  0  [ = ]
  +171% +2.23Ki src/core/ext/filters/client_channel/resolver_registry.cc                             +2.23Ki  +171%
      [NEW]    +782 grpc_core::ResolverRegistry::CreateResolver                                             +782  [NEW]
      [NEW]    +730 grpc_core::ResolverRegistry::GetDefaultAuthority                                        +730  [NEW]
      [NEW]    +666 grpc_core::ResolverRegistry::AddDefaultPrefixIfNeeded                                   +666  [NEW]
      [NEW]    +541 grpc_core::ResolverRegistry::Builder::RegisterResolverFactory                           +541  [NEW]
      [NEW]    +283 grpc_core::ResolverRegistry::Builder::ShutdownRegistry                                  +283  [NEW]
      [NEW]    +225 grpc_core::ResolverRegistry::LookupResolverFactory                                      +225  [NEW]
      [NEW]    +165 grpc_core::ResolverRegistry::Builder::SetDefaultPrefix                                  +165  [NEW]
      [NEW]     +96 grpc_core::ResolverRegistry::Builder::InitRegistry                                       +96  [NEW]
      [NEW]     +47 grpc_core::(anonymous namespace)::RegistryState::FindResolverFactory(char const*, gr     +47  [NEW]
      [NEW]     +32 grpc_core::ResolverFactory::GetDefaultAuthority(grpc_uri*) const                         +32  [NEW]
      [NEW]      +9 grpc_core::ResolverFactory::~ResolverFactory                                              +9  [NEW]
      [NEW]      +2 grpc_core::ResolverFactory::~ResolverFactory                                              +2  [NEW]
  +5.0%    +695 src/core/ext/filters/client_channel/client_channel.cc                                   +695  +5.0%
      [NEW]    +301 waiting_for_pick_batches_fail(grpc_call_element*, grpc_error*) [clone .isra.6]          +301  [NEW]
       +26%    +252 cc_init_channel_elem                                                                    +252   +26%
       +13%    +104 start_transport_op_locked                                                               +104   +13%
      +3.5%     +98 on_resolver_result_changed_locked                                                        +98  +3.5%
      +489%     +88 shutdown_resolver_locked                                                                 +88  +489%
      [NEW]     +85 grpc_core::Resolver::Orphan                                                              +85  [NEW]
      [NEW]     +50 grpc_core::Resolver::ShutdownAndUnrefLocked                                              +50  [NEW]
      +3.8%     +11 [Unmapped]                                                                               +11  +3.8%
      +2.6%      +7 cc_destroy_channel_elem                                                                   +7  +2.6%
   +44%    +576 src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc              +576   +44%
      [NEW]    +668 grpc_core::(anonymous namespace)::CreateSockaddrResolver                                +668  [NEW]
      +450%    +198 grpc_resolver_sockaddr_init                                                             +198  +450%
      [NEW]    +175 grpc_core::(anonymous namespace)::SockaddrResolver::ShutdownLocked                      +175  [NEW]
      [NEW]    +142 grpc_core::(anonymous namespace)::SockaddrResolver::MaybeFinishNextLocked() [clone .    +142  [NEW]
       +80%     +88 [Unmapped]                                                                               +88   +80%
      [NEW]     +84 grpc_core::(anonymous namespace)::SockaddrResolver::NextLocked                           +84  [NEW]
      [NEW]     +69 grpc_core::(anonymous namespace)::IPv4ResolverFactory::CreateResolver(grpc_core::Res     +69  [NEW]
      [NEW]     +69 grpc_core::(anonymous namespace)::IPv6ResolverFactory::CreateResolver(grpc_core::Res     +69  [NEW]
      [NEW]     +69 grpc_core::(anonymous namespace)::UnixResolverFactory::CreateResolver(grpc_core::Res     +69  [NEW]
      [NEW]     +41 grpc_core::(anonymous namespace)::SockaddrResolver::~SockaddrResolver                    +41  [NEW]
      [NEW]     +24 grpc_core::(anonymous namespace)::UnixResolverFactory::GetDefaultAuthority(grpc_uri*     +24  [NEW]
      [NEW]     +18 grpc_core::(anonymous namespace)::SockaddrResolver::RequestReresolutionLocked            +18  [NEW]
      [NEW]     +14 grpc_core::(anonymous namespace)::SockaddrResolver::~SockaddrResolver                    +14  [NEW]
      [NEW]      +9 grpc_core::(anonymous namespace)::IPv4ResolverFactory::~IPv4ResolverFactory               +9  [NEW]
      [NEW]      +9 grpc_core::(anonymous namespace)::IPv6ResolverFactory::~IPv6ResolverFactory               +9  [NEW]
      [NEW]      +9 grpc_core::(anonymous namespace)::UnixResolverFactory::~UnixResolverFactory               +9  [NEW]
      [NEW]      +8 grpc_core::(anonymous namespace)::IPv4ResolverFactory::scheme() const                     +8  [NEW]
      [NEW]      +8 grpc_core::(anonymous namespace)::IPv6ResolverFactory::scheme() const                     +8  [NEW]
      [NEW]      +8 grpc_core::(anonymous namespace)::UnixResolverFactory::scheme() const                     +8  [NEW]
      [NEW]      +6 [Other]                                                                                   +6  [NEW]
      [NEW]      +2 grpc_core::(anonymous namespace)::IPv4ResolverFactory::~IPv4ResolverFactory               +2  [NEW]
   +12%    +272 src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc                 +272   +12%
      [NEW]    +715 grpc_core::(anonymous namespace)::NativeDnsResolver::OnResolvedLocked                   +715  [NEW]
      [NEW]    +526 grpc_core::(anonymous namespace)::NativeDnsResolverFactory::CreateResolver(grpc_core    +526  [NEW]
      [NEW]    +199 grpc_core::(anonymous namespace)::NativeDnsResolver::ShutdownLocked                     +199  [NEW]
      [NEW]    +196 grpc_core::(anonymous namespace)::NativeDnsResolver::MaybeStartResolvingLocked          +196  [NEW]
      [NEW]    +145 grpc_core::(anonymous namespace)::NativeDnsResolver::StartResolvingLocked               +145  [NEW]
       +92%    +140 grpc_resolver_dns_native_init                                                           +140   +92%
      [NEW]    +129 grpc_core::(anonymous namespace)::NativeDnsResolver::MaybeFinishNextLocked              +129  [NEW]
      [NEW]     +92 grpc_core::(anonymous namespace)::NativeDnsResolver::NextLocked                          +92  [NEW]
      [NEW]     +69 grpc_core::(anonymous namespace)::NativeDnsResolver::OnNextResolutionLocked              +69  [NEW]
      [NEW]     +67 grpc_core::(anonymous namespace)::NativeDnsResolver::~NativeDnsResolver                  +67  [NEW]
       +54%     +49 [Unmapped]                                                                               +49   +54%
      [NEW]     +21 grpc_core::(anonymous namespace)::NativeDnsResolver::RequestReresolutionLocked           +21  [NEW]
      [NEW]     +14 grpc_core::(anonymous namespace)::NativeDnsResolver::~NativeDnsResolver                  +14  [NEW]
      [NEW]      +9 grpc_core::(anonymous namespace)::NativeDnsResolverFactory::~NativeDnsResolverFactor      +9  [NEW]
      [NEW]      +8 grpc_core::(anonymous namespace)::NativeDnsResolverFactory::scheme() const                +8  [NEW]
      [NEW]      +2 grpc_core::(anonymous namespace)::NativeDnsResolverFactory::~NativeDnsResolverFactor      +2  [NEW]
  +6.4%    +240 src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc            +240  +6.4%
      [NEW] +1.66Ki grpc_core::(anonymous namespace)::AresDnsResolver::OnResolvedLocked                  +1.66Ki  [NEW]
      [NEW]    +579 grpc_core::(anonymous namespace)::AresDnsResolverFactory::CreateResolver(grpc_core::    +579  [NEW]
      [NEW]    +231 grpc_core::(anonymous namespace)::AresDnsResolver::ShutdownLocked                       +231  [NEW]
      [NEW]    +202 grpc_core::(anonymous namespace)::AresDnsResolver::StartResolvingLocked                 +202  [NEW]
      [NEW]    +196 grpc_core::(anonymous namespace)::AresDnsResolver::MaybeStartResolvingLocked            +196  [NEW]
      [NEW]    +169 grpc_core::(anonymous namespace)::AresDnsResolver::MaybeFinishNextLocked                +169  [NEW]
      [NEW]    +148 grpc_core::(anonymous namespace)::AresDnsResolver::NextLocked                           +148  [NEW]
      +100%    +121 grpc_resolver_dns_ares_init                                                             +121  +100%
      [NEW]    +104 grpc_core::(anonymous namespace)::AresDnsResolver::~AresDnsResolver                     +104  [NEW]
      [NEW]     +84 grpc_core::(anonymous namespace)::ValueInJsonArray(grpc_json*, char const*) [clone .     +84  [NEW]
      [NEW]     +72 grpc_core::(anonymous namespace)::AresDnsResolver::OnNextResolutionLocked                +72  [NEW]
      [NEW]     +21 grpc_core::(anonymous namespace)::AresDnsResolver::RequestReresolutionLocked             +21  [NEW]
      [NEW]     +14 grpc_core::(anonymous namespace)::AresDnsResolver::~AresDnsResolver                      +14  [NEW]
      [NEW]      +9 grpc_core::(anonymous namespace)::AresDnsResolverFactory::~AresDnsResolverFactory         +9  [NEW]
      [NEW]      +8 grpc_core::(anonymous namespace)::AresDnsResolverFactory::scheme() const                  +8  [NEW]
      +4.8%      +7 [Unmapped]                                                                                +7  +4.8%
      [NEW]      +2 grpc_core::(anonymous namespace)::AresDnsResolverFactory::~AresDnsResolverFactory         +2  [NEW]
  +1.5%    +214 src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc                          +214  +1.5%
      [NEW]    +801 build_lb_channel_args(grpc_lb_addresses const*, grpc_core::FakeResolverResponseGener    +801  [NEW]
       +12%    +126 glb_create                                                                              +126   +12%
       +32%     +64 glb_destroy                                                                              +64   +32%
      [NEW]      +9 grpc_core::RefCounted<grpc_core::FakeResolverResponseGenerator>::~RefCounted              +9  [NEW]
      [NEW]      +9 grpc_core::FakeResolverResponseGenerator::~FakeResolverResponseGenerator                  +9  [NEW]
      +0.5%      +2 [Unmapped]                                                                                +2  +0.5%
      [NEW]      +2 grpc_core::RefCounted<grpc_core::FakeResolverResponseGenerator>::~RefCounted              +2  [NEW]
      [NEW]      +2 grpc_core::FakeResolverResponseGenerator::~FakeResolverResponseGenerator                  +2  [NEW]
   +98%    +163 src/core/ext/filters/client_channel/resolver.cc                                         +163   +98%
      [NEW]     +82 grpc_core::Resolver::Resolver                                                            +82  [NEW]
      [NEW]     +47 grpc_core::Orphanable::Orphan                                                            +47  [NEW]
      [NEW]     +47 grpc_core::Resolver::NextLocked                                                          +47  [NEW]
      [NEW]     +47 grpc_core::Resolver::ShutdownLocked                                                      +47  [NEW]
      [NEW]     +47 grpc_core::Resolver::RequestReresolutionLocked                                           +47  [NEW]
      [NEW]     +23 grpc_core::Resolver::~Resolver                                                           +23  [NEW]
      [NEW]     +14 grpc_core::Resolver::~Resolver                                                           +14  [NEW]
      [NEW]      +9 grpc_core::InternallyRefCountedWithTracing<grpc_core::Resolver>::~InternallyRefCount      +9  [NEW]
      [NEW]      +2 grpc_core::InternallyRefCountedWithTracing<grpc_core::Resolver>::~InternallyRefCount      +2  [NEW]
   +11%    +160 src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc                      +160   +11%
      [NEW]    +209 grpc_core::FakeResolverResponseGenerator::SetResponse                                   +209  [NEW]
      [NEW]    +181 grpc_core::FakeResolverResponseGenerator::SetReresolutionResponse                       +181  [NEW]
      [NEW]    +175 grpc_core::FakeResolver::ShutdownLocked                                                 +175  [NEW]
      [NEW]    +121 grpc_core::FakeResolver::FakeResolver                                                   +121  [NEW]
      [NEW]    +105 grpc_core::FakeResolver::MaybeFinishNextLocked                                          +105  [NEW]
      +825%     +99 grpc_resolver_fake_init                                                                  +99  +825%
      [NEW]     +97 grpc_core::FakeResolver::RequestReresolutionLocked                                       +97  [NEW]
      [NEW]     +78 grpc_core::FakeResolverResponseGenerator::SetResponseLocked                              +78  [NEW]
      [NEW]     +67 grpc_core::FakeResolver::NextLocked                                                      +67  [NEW]
      [NEW]     +63 grpc_core::FakeResolver::~FakeResolver                                                   +63  [NEW]
      [NEW]     +52 grpc_core::FakeResolverResponseGenerator::GetFromArgs                                    +52  [NEW]
      [NEW]     +51 grpc_core::(anonymous namespace)::FakeResolverFactory::CreateResolver(grpc_core::Res     +51  [NEW]
      [NEW]     +48 grpc_core::FakeResolverResponseGenerator::SetReresolutionResponseLocked                  +48  [NEW]
      [NEW]     +41 grpc_core::(anonymous namespace)::response_generator_arg_destroy                         +41  [NEW]
      [NEW]     +36 grpc_core::FakeResolverResponseGenerator::MakeChannelArg                                 +36  [NEW]
      [NEW]     +18 grpc_core::(anonymous namespace)::response_generator_arg_copy                            +18  [NEW]
      [NEW]     +17 grpc_core::(anonymous namespace)::response_generator_cmp                                 +17  [NEW]
      [NEW]     +14 grpc_core::FakeResolver::~FakeResolver                                                   +14  [NEW]
      [NEW]      +9 grpc_core::(anonymous namespace)::FakeResolverFactory::~FakeResolverFactory               +9  [NEW]
      [NEW]      +8 grpc_core::(anonymous namespace)::FakeResolverFactory::scheme() const                     +8  [NEW]
      [NEW]      +2 [Other]                                                                                   +2  [NEW]
  +7.9%     +32 src/core/ext/filters/client_channel/client_channel_plugin.cc                             +32  +7.9%
      +9.0%     +23 set_default_host_if_unset                                                                +23  +9.0%
       +64%      +9 [Unmapped]                                                                                +9   +64%
  +2.0%     +16 src/core/ext/transport/chttp2/client/insecure/channel_create.cc                          +16  +2.0%
      +7.5%     +16 client_channel_factory_create_channel                                                    +16  +7.5%
  +0.9%     +16 src/core/ext/transport/chttp2/client/secure/secure_channel_create.cc                     +16  +0.9%
      +7.5%     +16 client_channel_factory_create_channel                                                    +16  +7.5%

 -------------- SHRINKING                                                                            --------------
  [DEL]     -83 src/core/ext/filters/client_channel/resolver_factory.cc                                  -83  [DEL]
      [DEL]     -34 [Unmapped]                                                                               -34  [DEL]
      [DEL]     -19 grpc_resolver_factory_create_resolver                                                    -19  [DEL]
      [DEL]     -19 grpc_resolver_factory_get_default_authority                                              -19  [DEL]
      [DEL]      -6 grpc_resolver_factory_unref                                                               -6  [DEL]
      [DEL]      -5 grpc_resolver_factory_ref                                                                 -5  [DEL]

  +0.7% +7.82Ki TOTAL                                                                                 +194Ki  +2.9%


****************************************************************

libgrpc++.so

     VM SIZE        FILE SIZE
 ++++++++++++++  ++++++++++++++

  [ = ]       0        0  [ = ]



@grpc-testing
Copy link
Copy Markdown

[trickle] No significant performance differences

@grpc-testing
Copy link
Copy Markdown

[microbenchmarks] No significant performance differences

@markdroth
Copy link
Copy Markdown
Member Author

Green!

@markdroth markdroth merged commit 2a07398 into grpc:master Feb 8, 2018
@markdroth markdroth deleted the c++_resolver branch February 8, 2018 20:19
@lock lock bot locked as resolved and limited conversation to collaborators Jan 20, 2019
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants