Skip to content

Load reporting filter#15570

Merged
AspirinSJL merged 1 commit intogrpc:masterfrom
AspirinSJL:load_reporting_filter
Jun 22, 2018
Merged

Load reporting filter#15570
AspirinSJL merged 1 commit intogrpc:masterfrom
AspirinSJL:load_reporting_filter

Conversation

@AspirinSJL
Copy link
Copy Markdown
Contributor

@AspirinSJL AspirinSJL commented May 30, 2018

Based on #15196.

I refactored the internal implementation a little bit according to my understanding.

Eyeball checked the code several times. Currently I don't see any obvious error. I will test this in an end-to-end test.


This change is Reviewable

@grpc-testing
Copy link
Copy Markdown

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

libgrpc.so

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

 -------------- SHRINKING                                                           --------------
  -0.2% -1.51Ki [None]                                                              -55.6Ki  -0.6%
      -0.2% -1.43Ki [Unmapped]                                                          -55.5Ki  -0.6%
      [DEL]     -88 grpc_server_load_reporting_filter                                       -88  [DEL]
  [DEL]    -967 src/core/ext/filters/load_reporting/server_load_reporting_filter.cc    -967  [DEL]
      [DEL]    -393 on_initial_md_ready                                                    -393  [DEL]
      [DEL]    -148 lr_start_transport_stream_op_batch                                     -148  [DEL]
      [DEL]    -121 lr_trailing_md_filter                                                  -121  [DEL]
      [DEL]    -119 destroy_call_elem                                                      -119  [DEL]
      [DEL]     -71 init_channel_elem                                                       -71  [DEL]
      [DEL]     -62 [Unmapped]                                                              -62  [DEL]
      [DEL]     -51 init_call_elem                                                          -51  [DEL]
      [DEL]      -2 destroy_channel_elem                                                     -2  [DEL]
  [DEL]    -258 src/core/ext/filters/load_reporting/server_load_reporting_plugin.cc    -258  [DEL]
      [DEL]    -134 maybe_add_server_load_reporting_filter                                 -134  [DEL]
      [DEL]     -71 grpc_load_reporting_enable_arg                                          -71  [DEL]
      [DEL]     -29 grpc_server_load_reporting_plugin_init                                  -29  [DEL]
      [DEL]     -22 [Unmapped]                                                              -22  [DEL]
      [DEL]      -2 grpc_server_load_reporting_plugin_shutdown                               -2  [DEL]
  -5.4%     -19 src/core/plugin_registry/grpc_plugin_registry.cc                        -19  -5.4%
      -5.4%     -19 grpc_register_built_in_plugins                                          -19  -5.4%

  -0.2% -2.73Ki TOTAL                                                               -56.8Ki  -0.6%


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

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

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

libgrpc.so

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

 -------------- SHRINKING                                                           --------------
  -0.2% -1.51Ki [None]                                                              -55.6Ki  -0.6%
      -0.2% -1.43Ki [Unmapped]                                                          -55.5Ki  -0.6%
      [DEL]     -88 grpc_server_load_reporting_filter                                       -88  [DEL]
  [DEL]    -967 src/core/ext/filters/load_reporting/server_load_reporting_filter.cc    -967  [DEL]
      [DEL]    -393 on_initial_md_ready                                                    -393  [DEL]
      [DEL]    -148 lr_start_transport_stream_op_batch                                     -148  [DEL]
      [DEL]    -121 lr_trailing_md_filter                                                  -121  [DEL]
      [DEL]    -119 destroy_call_elem                                                      -119  [DEL]
      [DEL]     -71 init_channel_elem                                                       -71  [DEL]
      [DEL]     -62 [Unmapped]                                                              -62  [DEL]
      [DEL]     -51 init_call_elem                                                          -51  [DEL]
      [DEL]      -2 destroy_channel_elem                                                     -2  [DEL]
  [DEL]    -258 src/core/ext/filters/load_reporting/server_load_reporting_plugin.cc    -258  [DEL]
      [DEL]    -134 maybe_add_server_load_reporting_filter                                 -134  [DEL]
      [DEL]     -71 grpc_load_reporting_enable_arg                                          -71  [DEL]
      [DEL]     -29 grpc_server_load_reporting_plugin_init                                  -29  [DEL]
      [DEL]     -22 [Unmapped]                                                              -22  [DEL]
      [DEL]      -2 grpc_server_load_reporting_plugin_shutdown                               -2  [DEL]
  -5.4%     -19 src/core/plugin_registry/grpc_plugin_registry.cc                        -19  -5.4%
      -5.4%     -19 grpc_register_built_in_plugins                                          -19  -5.4%

  -0.2% -2.73Ki TOTAL                                                               -56.8Ki  -0.6%


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

libgrpc++.so

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

  [ = ]       0        0  [ = ]



@grpc-testing
Copy link
Copy Markdown

[trickle] No significant performance differences

@AspirinSJL AspirinSJL force-pushed the load_reporting_filter branch from 42bc4fe to 6dad6bb Compare May 31, 2018 00:03
@grpc-testing
Copy link
Copy Markdown

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

libgrpc.so

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

 -------------- SHRINKING                                                           --------------
  -0.2% -1.51Ki [None]                                                              -55.6Ki  -0.6%
      -0.2% -1.43Ki [Unmapped]                                                          -55.5Ki  -0.6%
      [DEL]     -88 grpc_server_load_reporting_filter                                       -88  [DEL]
  [DEL]    -967 src/core/ext/filters/load_reporting/server_load_reporting_filter.cc    -967  [DEL]
      [DEL]    -393 on_initial_md_ready                                                    -393  [DEL]
      [DEL]    -148 lr_start_transport_stream_op_batch                                     -148  [DEL]
      [DEL]    -121 lr_trailing_md_filter                                                  -121  [DEL]
      [DEL]    -119 destroy_call_elem                                                      -119  [DEL]
      [DEL]     -71 init_channel_elem                                                       -71  [DEL]
      [DEL]     -62 [Unmapped]                                                              -62  [DEL]
      [DEL]     -51 init_call_elem                                                          -51  [DEL]
      [DEL]      -2 destroy_channel_elem                                                     -2  [DEL]
  [DEL]    -258 src/core/ext/filters/load_reporting/server_load_reporting_plugin.cc    -258  [DEL]
      [DEL]    -134 maybe_add_server_load_reporting_filter                                 -134  [DEL]
      [DEL]     -71 grpc_load_reporting_enable_arg                                          -71  [DEL]
      [DEL]     -29 grpc_server_load_reporting_plugin_init                                  -29  [DEL]
      [DEL]     -22 [Unmapped]                                                              -22  [DEL]
      [DEL]      -2 grpc_server_load_reporting_plugin_shutdown                               -2  [DEL]
  -5.4%     -19 src/core/plugin_registry/grpc_plugin_registry.cc                        -19  -5.4%
      -5.4%     -19 grpc_register_built_in_plugins                                          -19  -5.4%

  -0.2% -2.73Ki TOTAL                                                               -56.8Ki  -0.6%


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

libgrpc++.so

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

  [ = ]       0        0  [ = ]



@AspirinSJL AspirinSJL force-pushed the load_reporting_filter branch from 6dad6bb to 647bea1 Compare May 31, 2018 00:07
@grpc-testing
Copy link
Copy Markdown

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

libgrpc.so

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

 -------------- SHRINKING                                                           --------------
  -0.2% -1.51Ki [None]                                                              -55.6Ki  -0.6%
      -0.2% -1.43Ki [Unmapped]                                                          -55.5Ki  -0.6%
      [DEL]     -88 grpc_server_load_reporting_filter                                       -88  [DEL]
  [DEL]    -967 src/core/ext/filters/load_reporting/server_load_reporting_filter.cc    -967  [DEL]
      [DEL]    -393 on_initial_md_ready                                                    -393  [DEL]
      [DEL]    -148 lr_start_transport_stream_op_batch                                     -148  [DEL]
      [DEL]    -121 lr_trailing_md_filter                                                  -121  [DEL]
      [DEL]    -119 destroy_call_elem                                                      -119  [DEL]
      [DEL]     -71 init_channel_elem                                                       -71  [DEL]
      [DEL]     -62 [Unmapped]                                                              -62  [DEL]
      [DEL]     -51 init_call_elem                                                          -51  [DEL]
      [DEL]      -2 destroy_channel_elem                                                     -2  [DEL]
  [DEL]    -258 src/core/ext/filters/load_reporting/server_load_reporting_plugin.cc    -258  [DEL]
      [DEL]    -134 maybe_add_server_load_reporting_filter                                 -134  [DEL]
      [DEL]     -71 grpc_load_reporting_enable_arg                                          -71  [DEL]
      [DEL]     -29 grpc_server_load_reporting_plugin_init                                  -29  [DEL]
      [DEL]     -22 [Unmapped]                                                              -22  [DEL]
      [DEL]      -2 grpc_server_load_reporting_plugin_shutdown                               -2  [DEL]
  -5.4%     -19 src/core/plugin_registry/grpc_plugin_registry.cc                        -19  -5.4%
      -5.4%     -19 grpc_register_built_in_plugins                                          -19  -5.4%

  -0.2% -2.73Ki TOTAL                                                               -56.8Ki  -0.6%


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

libgrpc++.so

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

  [ = ]       0        0  [ = ]



@grpc-testing
Copy link
Copy Markdown

[trickle] No significant performance differences

1 similar comment
@grpc-testing
Copy link
Copy Markdown

[trickle] No significant performance differences

@grpc-testing
Copy link
Copy Markdown

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

libgrpc.so

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

 -------------- SHRINKING                                                           --------------
  -0.2% -1.51Ki [None]                                                              -55.6Ki  -0.6%
      -0.2% -1.43Ki [Unmapped]                                                          -55.5Ki  -0.6%
      [DEL]     -88 grpc_server_load_reporting_filter                                       -88  [DEL]
  [DEL]    -967 src/core/ext/filters/load_reporting/server_load_reporting_filter.cc    -967  [DEL]
      [DEL]    -393 on_initial_md_ready                                                    -393  [DEL]
      [DEL]    -148 lr_start_transport_stream_op_batch                                     -148  [DEL]
      [DEL]    -121 lr_trailing_md_filter                                                  -121  [DEL]
      [DEL]    -119 destroy_call_elem                                                      -119  [DEL]
      [DEL]     -71 init_channel_elem                                                       -71  [DEL]
      [DEL]     -62 [Unmapped]                                                              -62  [DEL]
      [DEL]     -51 init_call_elem                                                          -51  [DEL]
      [DEL]      -2 destroy_channel_elem                                                     -2  [DEL]
  [DEL]    -258 src/core/ext/filters/load_reporting/server_load_reporting_plugin.cc    -258  [DEL]
      [DEL]    -134 maybe_add_server_load_reporting_filter                                 -134  [DEL]
      [DEL]     -71 grpc_load_reporting_enable_arg                                          -71  [DEL]
      [DEL]     -29 grpc_server_load_reporting_plugin_init                                  -29  [DEL]
      [DEL]     -22 [Unmapped]                                                              -22  [DEL]
      [DEL]      -2 grpc_server_load_reporting_plugin_shutdown                               -2  [DEL]
  -5.4%     -19 src/core/plugin_registry/grpc_plugin_registry.cc                        -19  -5.4%
      -5.4%     -19 grpc_register_built_in_plugins                                          -19  -5.4%

  -0.2% -2.73Ki TOTAL                                                               -56.8Ki  -0.6%


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

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



Missing files (indicates new benchmark): 
    bm_call_create.BM_IsolatedFilter_LoadReportingFilter_SendEmptyMetadata_.counters.new: 10
    bm_call_create.BM_IsolatedFilter_LoadReportingFilter_SendEmptyMetadata_.opt.new: 10
    bm_call_create.BM_IsolatedFilter_LoadReportingFilter_NoOp_.opt.new: 10
    bm_call_create.BM_IsolatedFilter_LoadReportingFilter_NoOp_.counters.new: 10


[microbenchmarks] Performance differences noted:
Benchmark                                                          cpu_time    real_time
-----------------------------------------------------------------  ----------  -----------
BM_MetadataRefUnrefExternal                                        -21%        -21%
BM_MetadataRefUnrefStatic                                          -5%         -5%
BM_UnaryPingPong<InProcess, NoOpMutator, NoOpMutator>/0/2097152    -6%         -6%
BM_UnaryPingPong<MinInProcess, NoOpMutator, NoOpMutator>/0/262144  -6%         -6%

@grpc-testing
Copy link
Copy Markdown

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

libgrpc.so

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

 -------------- SHRINKING                                                           --------------
  -0.2% -1.51Ki [None]                                                              -55.6Ki  -0.6%
      -0.2% -1.43Ki [Unmapped]                                                          -55.5Ki  -0.6%
      [DEL]     -88 grpc_server_load_reporting_filter                                       -88  [DEL]
  [DEL]    -967 src/core/ext/filters/load_reporting/server_load_reporting_filter.cc    -967  [DEL]
      [DEL]    -393 on_initial_md_ready                                                    -393  [DEL]
      [DEL]    -148 lr_start_transport_stream_op_batch                                     -148  [DEL]
      [DEL]    -121 lr_trailing_md_filter                                                  -121  [DEL]
      [DEL]    -119 destroy_call_elem                                                      -119  [DEL]
      [DEL]     -71 init_channel_elem                                                       -71  [DEL]
      [DEL]     -62 [Unmapped]                                                              -62  [DEL]
      [DEL]     -51 init_call_elem                                                          -51  [DEL]
      [DEL]      -2 destroy_channel_elem                                                     -2  [DEL]
  [DEL]    -258 src/core/ext/filters/load_reporting/server_load_reporting_plugin.cc    -258  [DEL]
      [DEL]    -134 maybe_add_server_load_reporting_filter                                 -134  [DEL]
      [DEL]     -71 grpc_load_reporting_enable_arg                                          -71  [DEL]
      [DEL]     -29 grpc_server_load_reporting_plugin_init                                  -29  [DEL]
      [DEL]     -22 [Unmapped]                                                              -22  [DEL]
      [DEL]      -2 grpc_server_load_reporting_plugin_shutdown                               -2  [DEL]
  -5.4%     -19 src/core/plugin_registry/grpc_plugin_registry.cc                        -19  -5.4%
      -5.4%     -19 grpc_register_built_in_plugins                                          -19  -5.4%

  -0.2% -2.73Ki TOTAL                                                               -56.8Ki  -0.6%


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

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



Missing files (indicates new benchmark): 
    bm_call_create.BM_IsolatedFilter_LoadReportingFilter_SendEmptyMetadata_.counters.new: 10
    bm_call_create.BM_IsolatedFilter_LoadReportingFilter_SendEmptyMetadata_.opt.new: 10
    bm_call_create.BM_IsolatedFilter_LoadReportingFilter_NoOp_.opt.new: 10
    bm_call_create.BM_IsolatedFilter_LoadReportingFilter_NoOp_.counters.new: 10


[microbenchmarks] No significant performance differences

@markdroth
Copy link
Copy Markdown
Member

This looks like a good start.


Reviewed 26 of 35 files at r1, 11 of 13 files at r2, 4 of 4 files at r4.
Review status: all files reviewed at latest revision, all discussions resolved, some commit checks broke.


src/core/ext/filters/load_reporting/server_load_reporting_filter.cc, line 48 at r4 (raw file):

constexpr size_t kLengthPrefixSize = 2;

typedef struct call_data {

Consider using the C++ filter API, defined in src/cpp/common/channel_filter.h.


src/core/ext/filters/load_reporting/server_load_reporting_filter.cc, line 67 at r4 (raw file):

  // The closure that wraps the original closure. Scheduled when
  // recv_initial_metadata is ready.
  grpc_closure wrapped_recv_initial_metadata_ready;

Suggest removing the wrapped_ prefix, both here and for the function below.


src/core/ext/filters/load_reporting/server_load_reporting_filter.cc, line 70 at r4 (raw file):

  // Corresponds to the :path header.
  // TODO(bdrutu): Can we use the grpc_call_element_args::path?

No, you can't use that on the server side. That field is only set on the client side. The server side doesn't know the path at call construction time; it only knows it when it gets the recv_initial_metadata op.


src/core/ext/filters/load_reporting/server_load_reporting_filter.cc, line 90 at r4 (raw file):

  // because the data needed for recording the start comes from the initial
  // metadata, which may not be ready before the call finishes.
  bool was_start_recorded;

Shouldn't this be renamed to something like seen_recv_initial_metadata?

Can we tell this by checking that one of the fields above (e.g., original_recv_initial_metadata_ready) is non-null, rather than having a separate bool for it?


src/core/ext/filters/load_reporting/server_load_reporting_filter.cc, line 105 at r4 (raw file):

                                      char** client_ip_string, size_t* size) {
  // Find the client URI string.
  auto client_uri_str =

Please use const char* instead of auto here.


src/core/ext/filters/load_reporting/server_load_reporting_filter.cc, line 198 at r4 (raw file):

  } else if (calld->target_host == nullptr &&
             grpc_slice_eq(GRPC_MDKEY(md), GRPC_MDSTR_AUTHORITY)) {
    // TODO(juanlishen): The internal comment says the target host is constant

The host can be different per call if virtual hosting is in use. Most people don't do that with grpc, though.


src/core/ext/filters/load_reporting/server_load_reporting_filter.cc, line 245 at r4 (raw file):

    calld->was_start_recorded = true;
  }
  // TODO(juanlishen): Ask yashkt; use RUN instead.

It's safe to use RUN here, since this is the end of a closure, and we can be sure no locks are being held.


src/core/ext/filters/load_reporting/server_load_reporting_filter.cc, line 259 at r4 (raw file):

                           const grpc_call_element_args* args) {
  call_data* calld = reinterpret_cast<call_data*>(elem->call_data);
  memset(calld, 0, sizeof(call_data));

No need for this memset(). Filter memory is always initialized to zero for you by the channel stack.


Comments from Reviewable

@AspirinSJL
Copy link
Copy Markdown
Contributor Author

Thanks for the early review!


Review status: all files reviewed, 8 unresolved discussions (waiting on @markdroth, @dgquintas, and @summerxyt)


src/core/ext/filters/load_reporting/server_load_reporting_filter.cc, line 48 at r4 (raw file):

Previously, markdroth (Mark D. Roth) wrote…

Consider using the C++ filter API, defined in src/cpp/common/channel_filter.h.

Done.


src/core/ext/filters/load_reporting/server_load_reporting_filter.cc, line 67 at r4 (raw file):

Previously, markdroth (Mark D. Roth) wrote…

Suggest removing the wrapped_ prefix, both here and for the function below.

Done.


src/core/ext/filters/load_reporting/server_load_reporting_filter.cc, line 70 at r4 (raw file):

Previously, markdroth (Mark D. Roth) wrote…

No, you can't use that on the server side. That field is only set on the client side. The server side doesn't know the path at call construction time; it only knows it when it gets the recv_initial_metadata op.

Deleted. Pinged bdrutu internally.


src/core/ext/filters/load_reporting/server_load_reporting_filter.cc, line 90 at r4 (raw file):

Previously, markdroth (Mark D. Roth) wrote…

Shouldn't this be renamed to something like seen_recv_initial_metadata?

Can we tell this by checking that one of the fields above (e.g., original_recv_initial_metadata_ready) is non-null, rather than having a separate bool for it?

Done. Using client_ip_and_lr_token_ should suffice.


src/core/ext/filters/load_reporting/server_load_reporting_filter.cc, line 105 at r4 (raw file):

Previously, markdroth (Mark D. Roth) wrote…

Please use const char* instead of auto here.

Done.

My IDE keeps telling me to use auto after casting. Any reason we don't want to use auto here?


src/core/ext/filters/load_reporting/server_load_reporting_filter.cc, line 198 at r4 (raw file):

Previously, markdroth (Mark D. Roth) wrote…

The host can be different per call if virtual hosting is in use. Most people don't do that with grpc, though.

Got it.


src/core/ext/filters/load_reporting/server_load_reporting_filter.cc, line 245 at r4 (raw file):

Previously, markdroth (Mark D. Roth) wrote…

It's safe to use RUN here, since this is the end of a closure, and we can be sure no locks are being held.

Done.


src/core/ext/filters/load_reporting/server_load_reporting_filter.cc, line 259 at r4 (raw file):

Previously, markdroth (Mark D. Roth) wrote…

No need for this memset(). Filter memory is always initialized to zero for you by the channel stack.

I see.

Yeah, the call stack is allocated from arena, which is gpr_zalloced.


Comments from Reviewable

@grpc-testing
Copy link
Copy Markdown

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

libgrpc.so

     VM SIZE                                                                           FILE SIZE
 ++++++++++++++ GROWING                                                             ++++++++++++++
   +11%     +48 src/core/lib/iomgr/polling_entity.cc                                    +48   +11%
       +32%     +48 grpc_polling_entity_add_to_pollset_set                                  +48   +32%
  +0.1%     +16 src/core/lib/surface/call.cc                                            +16  +0.1%
       +20%     +12 release_call                                                            +12   +20%
      +1.0%      +4 [Unmapped]                                                               +4  +1.0%

 -------------- SHRINKING                                                           --------------
  -0.2% -1.74Ki [None]                                                              -55.4Ki  -0.6%
      -0.3% -1.65Ki [Unmapped]                                                          -55.3Ki  -0.6%
      [DEL]     -88 grpc_server_load_reporting_filter                                       -88  [DEL]
  [DEL]    -967 src/core/ext/filters/load_reporting/server_load_reporting_filter.cc    -967  [DEL]
      [DEL]    -393 on_initial_md_ready                                                    -393  [DEL]
      [DEL]    -148 lr_start_transport_stream_op_batch                                     -148  [DEL]
      [DEL]    -121 lr_trailing_md_filter                                                  -121  [DEL]
      [DEL]    -119 destroy_call_elem                                                      -119  [DEL]
      [DEL]     -71 init_channel_elem                                                       -71  [DEL]
      [DEL]     -62 [Unmapped]                                                              -62  [DEL]
      [DEL]     -51 init_call_elem                                                          -51  [DEL]
      [DEL]      -2 destroy_channel_elem                                                     -2  [DEL]
  [DEL]    -258 src/core/ext/filters/load_reporting/server_load_reporting_plugin.cc    -258  [DEL]
      [DEL]    -134 maybe_add_server_load_reporting_filter                                 -134  [DEL]
      [DEL]     -71 grpc_load_reporting_enable_arg                                          -71  [DEL]
      [DEL]     -29 grpc_server_load_reporting_plugin_init                                  -29  [DEL]
      [DEL]     -22 [Unmapped]                                                              -22  [DEL]
      [DEL]      -2 grpc_server_load_reporting_plugin_shutdown                               -2  [DEL]
  -2.1%     -96 src/core/lib/slice/slice_buffer.cc                                      -96  -2.1%
     -20.5%    -108 grpc_slice_buffer_trim_end                                             -108 -20.5%
  -0.5%     -32 src/core/lib/iomgr/error.cc                                             -32  -0.5%
     -15.8%     -28 [Unmapped]                                                              -28 -15.8%
      [DEL]      -2 grpc_enable_error_creation                                               -2  [DEL]
      [DEL]      -2 grpc_disable_error_creation                                              -2  [DEL]
  -5.4%     -19 src/core/plugin_registry/grpc_plugin_registry.cc                        -19  -5.4%
      -5.4%     -19 grpc_register_built_in_plugins                                          -19  -5.4%

  -0.2% -3.02Ki TOTAL                                                               -56.7Ki  -0.6%


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

libgrpc++.so

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

 -------------- SHRINKING                                            --------------
  -0.4%     -60 src/cpp/client/generic_stub.cc                           -60  -0.4%
      -2.9%     -60 grpc::internal::CallOpClientRecvStatus::FinishOp         -60  -2.9%

 -+-+-+-+-+-+-+ MIXED                                                +-+-+-+-+-+-+-
  -0.0%      -4 [None]                                                  +516  +0.0%

  -0.0%     -64 TOTAL                                                   +456  +0.0%



@grpc-testing
Copy link
Copy Markdown

[trickle] No significant performance differences

@grpc-testing
Copy link
Copy Markdown



Missing files (indicates new benchmark): 
    bm_call_create.BM_IsolatedFilter_LoadReportingFilter_SendEmptyMetadata_.counters.new: 10
    bm_call_create.BM_IsolatedFilter_LoadReportingFilter_SendEmptyMetadata_.opt.new: 10
    bm_call_create.BM_IsolatedFilter_LoadReportingFilter_NoOp_.opt.new: 10
    bm_call_create.BM_IsolatedFilter_LoadReportingFilter_NoOp_.counters.new: 10


[microbenchmarks] Performance differences noted:
Benchmark                                                                                                    allocs_per_iteration    cpu_time    real_time
-----------------------------------------------------------------------------------------------------------  ----------------------  ----------  -----------
BM_ErrorGetIntFromNoError                                                                                                            -11%        -11%
BM_HasClearGrpcStatus<ErrorWithGrpcStatus>                                                                                           -5%         -5%
BM_MetadataRefUnrefStatic                                                                                                            -5%         -5%
BM_StreamingPingPong<InProcessCHTTP2, NoOpMutator, NoOpMutator>/0/0                                          +49%
BM_StreamingPingPong<InProcessCHTTP2, NoOpMutator, NoOpMutator>/0/1                                          +19%
BM_StreamingPingPong<InProcessCHTTP2, NoOpMutator, NoOpMutator>/0/2                                          +12%
BM_StreamingPingPong<InProcessCHTTP2, NoOpMutator, NoOpMutator>/1/1                                          +19%
BM_StreamingPingPong<InProcessCHTTP2, NoOpMutator, NoOpMutator>/1/2                                          +12%
BM_StreamingPingPong<InProcessCHTTP2, NoOpMutator, NoOpMutator>/2097152/1                                    +7%
BM_StreamingPingPong<InProcessCHTTP2, NoOpMutator, NoOpMutator>/262144/1                                     +13%
BM_StreamingPingPong<InProcessCHTTP2, NoOpMutator, NoOpMutator>/262144/2                                     +7%
BM_StreamingPingPong<InProcessCHTTP2, NoOpMutator, NoOpMutator>/32768/1                                      +14%
BM_StreamingPingPong<InProcessCHTTP2, NoOpMutator, NoOpMutator>/32768/2                                      +8%
BM_StreamingPingPong<InProcessCHTTP2, NoOpMutator, NoOpMutator>/4096/1                                       +14%
BM_StreamingPingPong<InProcessCHTTP2, NoOpMutator, NoOpMutator>/4096/2                                       +8%
BM_StreamingPingPong<InProcessCHTTP2, NoOpMutator, NoOpMutator>/512/1                                        +14%
BM_StreamingPingPong<InProcessCHTTP2, NoOpMutator, NoOpMutator>/512/2                                        +8%
BM_StreamingPingPong<InProcessCHTTP2, NoOpMutator, NoOpMutator>/64/1                                         +14%
BM_StreamingPingPong<InProcessCHTTP2, NoOpMutator, NoOpMutator>/64/2                                         +8%
BM_StreamingPingPong<InProcessCHTTP2, NoOpMutator, NoOpMutator>/8/1                                          +19%
BM_StreamingPingPong<InProcessCHTTP2, NoOpMutator, NoOpMutator>/8/2                                          +12%
BM_StreamingPingPong<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/0/0                                       +49%
BM_StreamingPingPong<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/0/1                                       +19%
BM_StreamingPingPong<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/0/2                                       +12%
BM_StreamingPingPong<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/1/1                                       +19%
BM_StreamingPingPong<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/1/2                                       +12%
BM_StreamingPingPong<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/2097152/1                                 +8%
BM_StreamingPingPong<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/262144/1                                  +13%
BM_StreamingPingPong<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/262144/2                                  +7%
BM_StreamingPingPong<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/32768/1                                   +14%
BM_StreamingPingPong<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/32768/2                                   +8%
BM_StreamingPingPong<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/4096/1                                    +14%
BM_StreamingPingPong<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/4096/2                                    +8%
BM_StreamingPingPong<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/512/1                                     +14%
BM_StreamingPingPong<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/512/2                                     +8%
BM_StreamingPingPong<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/64/1                                      +14%
BM_StreamingPingPong<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/64/2                                      +8%
BM_StreamingPingPong<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/8/1                                       +19%
BM_StreamingPingPong<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/8/2                                       +12%
BM_StreamingPingPong<MinTCP, NoOpMutator, NoOpMutator>/0/0                                                   +47%
BM_StreamingPingPong<MinTCP, NoOpMutator, NoOpMutator>/0/1                                                   +18%
BM_StreamingPingPong<MinTCP, NoOpMutator, NoOpMutator>/0/2                                                   +11%
BM_StreamingPingPong<MinTCP, NoOpMutator, NoOpMutator>/1/1                                                   +18%
BM_StreamingPingPong<MinTCP, NoOpMutator, NoOpMutator>/1/2                                                   +11%
BM_StreamingPingPong<MinTCP, NoOpMutator, NoOpMutator>/262144/1                                              +12%
BM_StreamingPingPong<MinTCP, NoOpMutator, NoOpMutator>/262144/2                                              +6%
BM_StreamingPingPong<MinTCP, NoOpMutator, NoOpMutator>/32768/1                                               +14%
BM_StreamingPingPong<MinTCP, NoOpMutator, NoOpMutator>/32768/2                                               +8%
BM_StreamingPingPong<MinTCP, NoOpMutator, NoOpMutator>/4096/1                                                +15%
BM_StreamingPingPong<MinTCP, NoOpMutator, NoOpMutator>/4096/2                                                +8%
BM_StreamingPingPong<MinTCP, NoOpMutator, NoOpMutator>/512/1                                                 +15%
BM_StreamingPingPong<MinTCP, NoOpMutator, NoOpMutator>/512/2                                                 +8%
BM_StreamingPingPong<MinTCP, NoOpMutator, NoOpMutator>/64/1                                                  +15%
BM_StreamingPingPong<MinTCP, NoOpMutator, NoOpMutator>/64/2                                                  +9%
BM_StreamingPingPong<MinTCP, NoOpMutator, NoOpMutator>/8/1                                                   +18%
BM_StreamingPingPong<MinTCP, NoOpMutator, NoOpMutator>/8/2                                                   +11%
BM_StreamingPingPong<TCP, NoOpMutator, NoOpMutator>/0/0                                                      +47%
BM_StreamingPingPong<TCP, NoOpMutator, NoOpMutator>/0/1                                                      +18%
BM_StreamingPingPong<TCP, NoOpMutator, NoOpMutator>/0/2                                                      +11%
BM_StreamingPingPong<TCP, NoOpMutator, NoOpMutator>/1/1                                                      +18%
BM_StreamingPingPong<TCP, NoOpMutator, NoOpMutator>/1/2                                                      +11%
BM_StreamingPingPong<TCP, NoOpMutator, NoOpMutator>/262144/1                                                 +13%
BM_StreamingPingPong<TCP, NoOpMutator, NoOpMutator>/262144/2                                                 +7%
BM_StreamingPingPong<TCP, NoOpMutator, NoOpMutator>/32768/1                                                  +14%
BM_StreamingPingPong<TCP, NoOpMutator, NoOpMutator>/32768/2                                                  +8%
BM_StreamingPingPong<TCP, NoOpMutator, NoOpMutator>/4096/1                                                   +14%
BM_StreamingPingPong<TCP, NoOpMutator, NoOpMutator>/4096/2                                                   +8%
BM_StreamingPingPong<TCP, NoOpMutator, NoOpMutator>/512/1                                                    +15%
BM_StreamingPingPong<TCP, NoOpMutator, NoOpMutator>/512/2                                                    +8%
BM_StreamingPingPong<TCP, NoOpMutator, NoOpMutator>/64/1                                                     +15%
BM_StreamingPingPong<TCP, NoOpMutator, NoOpMutator>/64/2                                                     +9%
BM_StreamingPingPong<TCP, NoOpMutator, NoOpMutator>/8/1                                                      +18%
BM_StreamingPingPong<TCP, NoOpMutator, NoOpMutator>/8/2                                                      +11%
BM_StreamingPingPongWithCoalescingApi<InProcessCHTTP2, NoOpMutator, NoOpMutator>/0/0/0                       +49%
BM_StreamingPingPongWithCoalescingApi<InProcessCHTTP2, NoOpMutator, NoOpMutator>/0/0/1                       +49%
BM_StreamingPingPongWithCoalescingApi<InProcessCHTTP2, NoOpMutator, NoOpMutator>/0/1/0                       +19%
BM_StreamingPingPongWithCoalescingApi<InProcessCHTTP2, NoOpMutator, NoOpMutator>/0/1/1                       +19%
BM_StreamingPingPongWithCoalescingApi<InProcessCHTTP2, NoOpMutator, NoOpMutator>/0/2/0                       +12%
BM_StreamingPingPongWithCoalescingApi<InProcessCHTTP2, NoOpMutator, NoOpMutator>/0/2/1                       +12%
BM_StreamingPingPongWithCoalescingApi<InProcessCHTTP2, NoOpMutator, NoOpMutator>/1/1/0                       +19%
BM_StreamingPingPongWithCoalescingApi<InProcessCHTTP2, NoOpMutator, NoOpMutator>/1/1/1                       +19%
BM_StreamingPingPongWithCoalescingApi<InProcessCHTTP2, NoOpMutator, NoOpMutator>/1/2/0                       +12%
BM_StreamingPingPongWithCoalescingApi<InProcessCHTTP2, NoOpMutator, NoOpMutator>/1/2/1                       +12%
BM_StreamingPingPongWithCoalescingApi<InProcessCHTTP2, NoOpMutator, NoOpMutator>/2097152/1/0                 +7%
BM_StreamingPingPongWithCoalescingApi<InProcessCHTTP2, NoOpMutator, NoOpMutator>/2097152/1/1                 +6%
BM_StreamingPingPongWithCoalescingApi<InProcessCHTTP2, NoOpMutator, NoOpMutator>/262144/1/0                  +13%
BM_StreamingPingPongWithCoalescingApi<InProcessCHTTP2, NoOpMutator, NoOpMutator>/262144/1/1                  +13%
BM_StreamingPingPongWithCoalescingApi<InProcessCHTTP2, NoOpMutator, NoOpMutator>/262144/2/0                  +7%
BM_StreamingPingPongWithCoalescingApi<InProcessCHTTP2, NoOpMutator, NoOpMutator>/262144/2/1                  +7%
BM_StreamingPingPongWithCoalescingApi<InProcessCHTTP2, NoOpMutator, NoOpMutator>/32768/1/0                   +14%
BM_StreamingPingPongWithCoalescingApi<InProcessCHTTP2, NoOpMutator, NoOpMutator>/32768/1/1                   +14%
BM_StreamingPingPongWithCoalescingApi<InProcessCHTTP2, NoOpMutator, NoOpMutator>/32768/2/0                   +8%
BM_StreamingPingPongWithCoalescingApi<InProcessCHTTP2, NoOpMutator, NoOpMutator>/32768/2/1                   +8%
BM_StreamingPingPongWithCoalescingApi<InProcessCHTTP2, NoOpMutator, NoOpMutator>/4096/1/0                    +14%
BM_StreamingPingPongWithCoalescingApi<InProcessCHTTP2, NoOpMutator, NoOpMutator>/4096/1/1                    +14%
BM_StreamingPingPongWithCoalescingApi<InProcessCHTTP2, NoOpMutator, NoOpMutator>/4096/2/0                    +8%
BM_StreamingPingPongWithCoalescingApi<InProcessCHTTP2, NoOpMutator, NoOpMutator>/4096/2/1                    +8%
BM_StreamingPingPongWithCoalescingApi<InProcessCHTTP2, NoOpMutator, NoOpMutator>/512/1/0                     +14%
BM_StreamingPingPongWithCoalescingApi<InProcessCHTTP2, NoOpMutator, NoOpMutator>/512/1/1                     +14%
BM_StreamingPingPongWithCoalescingApi<InProcessCHTTP2, NoOpMutator, NoOpMutator>/512/2/0                     +8%
BM_StreamingPingPongWithCoalescingApi<InProcessCHTTP2, NoOpMutator, NoOpMutator>/512/2/1                     +8%
BM_StreamingPingPongWithCoalescingApi<InProcessCHTTP2, NoOpMutator, NoOpMutator>/64/1/0                      +14%
BM_StreamingPingPongWithCoalescingApi<InProcessCHTTP2, NoOpMutator, NoOpMutator>/64/1/1                      +14%
BM_StreamingPingPongWithCoalescingApi<InProcessCHTTP2, NoOpMutator, NoOpMutator>/64/2/0                      +8%
BM_StreamingPingPongWithCoalescingApi<InProcessCHTTP2, NoOpMutator, NoOpMutator>/64/2/1                      +8%
BM_StreamingPingPongWithCoalescingApi<InProcessCHTTP2, NoOpMutator, NoOpMutator>/8/1/0                       +19%
BM_StreamingPingPongWithCoalescingApi<InProcessCHTTP2, NoOpMutator, NoOpMutator>/8/1/1                       +19%
BM_StreamingPingPongWithCoalescingApi<InProcessCHTTP2, NoOpMutator, NoOpMutator>/8/2/0                       +12%
BM_StreamingPingPongWithCoalescingApi<InProcessCHTTP2, NoOpMutator, NoOpMutator>/8/2/1                       +12%
BM_StreamingPingPongWithCoalescingApi<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/0/0/0                    +49%
BM_StreamingPingPongWithCoalescingApi<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/0/0/1                    +49%
BM_StreamingPingPongWithCoalescingApi<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/0/1/0                    +19%
BM_StreamingPingPongWithCoalescingApi<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/0/1/1                    +19%
BM_StreamingPingPongWithCoalescingApi<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/0/2/0                    +12%
BM_StreamingPingPongWithCoalescingApi<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/0/2/1                    +12%
BM_StreamingPingPongWithCoalescingApi<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/1/1/0                    +19%
BM_StreamingPingPongWithCoalescingApi<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/1/1/1                    +19%
BM_StreamingPingPongWithCoalescingApi<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/1/2/0                    +12%
BM_StreamingPingPongWithCoalescingApi<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/1/2/1                    +12%
BM_StreamingPingPongWithCoalescingApi<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/2097152/1/0              +7%
BM_StreamingPingPongWithCoalescingApi<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/2097152/1/1              +7%
BM_StreamingPingPongWithCoalescingApi<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/262144/1/0               +13%
BM_StreamingPingPongWithCoalescingApi<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/262144/1/1               +13%
BM_StreamingPingPongWithCoalescingApi<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/262144/2/0               +7%
BM_StreamingPingPongWithCoalescingApi<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/262144/2/1               +7%
BM_StreamingPingPongWithCoalescingApi<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/32768/1/0                +14%
BM_StreamingPingPongWithCoalescingApi<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/32768/1/1                +14%
BM_StreamingPingPongWithCoalescingApi<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/32768/2/0                +8%
BM_StreamingPingPongWithCoalescingApi<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/32768/2/1                +8%
BM_StreamingPingPongWithCoalescingApi<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/4096/1/0                 +14%
BM_StreamingPingPongWithCoalescingApi<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/4096/1/1                 +14%
BM_StreamingPingPongWithCoalescingApi<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/4096/2/0                 +8%
BM_StreamingPingPongWithCoalescingApi<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/4096/2/1                 +8%
BM_StreamingPingPongWithCoalescingApi<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/512/1/0                  +14%
BM_StreamingPingPongWithCoalescingApi<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/512/1/1                  +14%
BM_StreamingPingPongWithCoalescingApi<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/512/2/0                  +8%
BM_StreamingPingPongWithCoalescingApi<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/512/2/1                  +8%
BM_StreamingPingPongWithCoalescingApi<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/64/1/0                   +14%
BM_StreamingPingPongWithCoalescingApi<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/64/1/1                   +14%
BM_StreamingPingPongWithCoalescingApi<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/64/2/0                   +8%
BM_StreamingPingPongWithCoalescingApi<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/64/2/1                   +8%
BM_StreamingPingPongWithCoalescingApi<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/8/1/0                    +19%
BM_StreamingPingPongWithCoalescingApi<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/8/1/1                    +19%
BM_StreamingPingPongWithCoalescingApi<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/8/2/0                    +12%
BM_StreamingPingPongWithCoalescingApi<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/8/2/1                    +12%
BM_UnaryPingPong<InProcessCHTTP2, Client_AddMetadata<RandomAsciiMetadata<100>, 1>, NoOpMutator>/0/0          +13%
BM_UnaryPingPong<InProcessCHTTP2, Client_AddMetadata<RandomAsciiMetadata<10>, 1>, NoOpMutator>/0/0           +15%
BM_UnaryPingPong<InProcessCHTTP2, Client_AddMetadata<RandomAsciiMetadata<31>, 1>, NoOpMutator>/0/0           +13%
BM_UnaryPingPong<InProcessCHTTP2, Client_AddMetadata<RandomBinaryMetadata<100>, 1>, NoOpMutator>/0/0         +13%
BM_UnaryPingPong<InProcessCHTTP2, Client_AddMetadata<RandomBinaryMetadata<100>, 2>, NoOpMutator>/0/0         +11%
BM_UnaryPingPong<InProcessCHTTP2, Client_AddMetadata<RandomBinaryMetadata<10>, 1>, NoOpMutator>/0/0          +15%
BM_UnaryPingPong<InProcessCHTTP2, Client_AddMetadata<RandomBinaryMetadata<10>, 2>, NoOpMutator>/0/0          +14%
BM_UnaryPingPong<InProcessCHTTP2, Client_AddMetadata<RandomBinaryMetadata<31>, 1>, NoOpMutator>/0/0          +13%
BM_UnaryPingPong<InProcessCHTTP2, Client_AddMetadata<RandomBinaryMetadata<31>, 2>, NoOpMutator>/0/0          +11%
BM_UnaryPingPong<InProcessCHTTP2, NoOpMutator, NoOpMutator>/0/0                                              +19%
BM_UnaryPingPong<InProcessCHTTP2, NoOpMutator, NoOpMutator>/0/1                                              +19%
BM_UnaryPingPong<InProcessCHTTP2, NoOpMutator, NoOpMutator>/0/2097152                                        +12%
BM_UnaryPingPong<InProcessCHTTP2, NoOpMutator, NoOpMutator>/0/262144                                         +16%
BM_UnaryPingPong<InProcessCHTTP2, NoOpMutator, NoOpMutator>/0/32768                                          +16%
BM_UnaryPingPong<InProcessCHTTP2, NoOpMutator, NoOpMutator>/0/4096                                           +16%
BM_UnaryPingPong<InProcessCHTTP2, NoOpMutator, NoOpMutator>/0/512                                            +16%
BM_UnaryPingPong<InProcessCHTTP2, NoOpMutator, NoOpMutator>/0/64                                             +16%
BM_UnaryPingPong<InProcessCHTTP2, NoOpMutator, NoOpMutator>/0/8                                              +19%
BM_UnaryPingPong<InProcessCHTTP2, NoOpMutator, NoOpMutator>/1/0                                              +19%
BM_UnaryPingPong<InProcessCHTTP2, NoOpMutator, NoOpMutator>/1/1                                              +19%
BM_UnaryPingPong<InProcessCHTTP2, NoOpMutator, NoOpMutator>/2097152/0                                        +12%
BM_UnaryPingPong<InProcessCHTTP2, NoOpMutator, NoOpMutator>/2097152/2097152                                  +7%
BM_UnaryPingPong<InProcessCHTTP2, NoOpMutator, NoOpMutator>/262144/0                                         +16%
BM_UnaryPingPong<InProcessCHTTP2, NoOpMutator, NoOpMutator>/262144/262144                                    +13%
BM_UnaryPingPong<InProcessCHTTP2, NoOpMutator, NoOpMutator>/32768/0                                          +16%
BM_UnaryPingPong<InProcessCHTTP2, NoOpMutator, NoOpMutator>/32768/32768                                      +14%
BM_UnaryPingPong<InProcessCHTTP2, NoOpMutator, NoOpMutator>/4096/0                                           +16%
BM_UnaryPingPong<InProcessCHTTP2, NoOpMutator, NoOpMutator>/4096/4096                                        +14%
BM_UnaryPingPong<InProcessCHTTP2, NoOpMutator, NoOpMutator>/512/0                                            +16%
BM_UnaryPingPong<InProcessCHTTP2, NoOpMutator, NoOpMutator>/512/512                                          +14%
BM_UnaryPingPong<InProcessCHTTP2, NoOpMutator, NoOpMutator>/64/0                                             +16%
BM_UnaryPingPong<InProcessCHTTP2, NoOpMutator, NoOpMutator>/64/64                                            +14%
BM_UnaryPingPong<InProcessCHTTP2, NoOpMutator, NoOpMutator>/8/0                                              +19%
BM_UnaryPingPong<InProcessCHTTP2, NoOpMutator, NoOpMutator>/8/8                                              +19%
BM_UnaryPingPong<InProcessCHTTP2, NoOpMutator, Server_AddInitialMetadata<RandomAsciiMetadata<100>, 1>>/0/0   +12%
BM_UnaryPingPong<InProcessCHTTP2, NoOpMutator, Server_AddInitialMetadata<RandomAsciiMetadata<10>, 1>>/0/0    +14%
BM_UnaryPingPong<InProcessCHTTP2, NoOpMutator, Server_AddInitialMetadata<RandomAsciiMetadata<31>, 1>>/0/0    +12%
BM_UnaryPingPong<InProcessCHTTP2, NoOpMutator, Server_AddInitialMetadata<RandomBinaryMetadata<100>, 1>>/0/0  +12%
BM_UnaryPingPong<InProcessCHTTP2, NoOpMutator, Server_AddInitialMetadata<RandomBinaryMetadata<10>, 1>>/0/0   +14%
BM_UnaryPingPong<InProcessCHTTP2, NoOpMutator, Server_AddInitialMetadata<RandomBinaryMetadata<31>, 1>>/0/0   +12%
BM_UnaryPingPong<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/0/0                                           +19%
BM_UnaryPingPong<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/0/1                                           +19%
BM_UnaryPingPong<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/0/2097152                                     +12%
BM_UnaryPingPong<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/0/262144                                      +16%
BM_UnaryPingPong<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/0/32768                                       +16%
BM_UnaryPingPong<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/0/4096                                        +16%
BM_UnaryPingPong<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/0/512                                         +16%
BM_UnaryPingPong<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/0/64                                          +16%
BM_UnaryPingPong<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/0/8                                           +19%
BM_UnaryPingPong<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/1/0                                           +19%
BM_UnaryPingPong<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/1/1                                           +19%
BM_UnaryPingPong<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/2097152/0                                     +12%
BM_UnaryPingPong<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/2097152/2097152                               +7%
BM_UnaryPingPong<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/262144/0                                      +16%
BM_UnaryPingPong<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/262144/262144                                 +13%
BM_UnaryPingPong<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/32768/0                                       +16%
BM_UnaryPingPong<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/32768/32768                                   +14%
BM_UnaryPingPong<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/4096/0                                        +16%
BM_UnaryPingPong<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/4096/4096                                     +14%
BM_UnaryPingPong<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/512/0                                         +16%
BM_UnaryPingPong<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/512/512                                       +14%
BM_UnaryPingPong<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/64/0                                          +16%
BM_UnaryPingPong<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/64/64                                         +14%
BM_UnaryPingPong<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/8/0                                           +19%
BM_UnaryPingPong<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/8/8                                           +19%
BM_UnaryPingPong<MinSockPair, NoOpMutator, NoOpMutator>/0/0                                                  +19%
BM_UnaryPingPong<MinTCP, NoOpMutator, NoOpMutator>/0/0                                                       +19%
BM_UnaryPingPong<MinTCP, NoOpMutator, NoOpMutator>/0/1                                                       +19%
BM_UnaryPingPong<MinTCP, NoOpMutator, NoOpMutator>/0/2097152                                                 +4%
BM_UnaryPingPong<MinTCP, NoOpMutator, NoOpMutator>/0/262144                                                  +16%
BM_UnaryPingPong<MinTCP, NoOpMutator, NoOpMutator>/0/32768                                                   +16%
BM_UnaryPingPong<MinTCP, NoOpMutator, NoOpMutator>/0/4096                                                    +16%
BM_UnaryPingPong<MinTCP, NoOpMutator, NoOpMutator>/0/512                                                     +16%
BM_UnaryPingPong<MinTCP, NoOpMutator, NoOpMutator>/0/64                                                      +17%
BM_UnaryPingPong<MinTCP, NoOpMutator, NoOpMutator>/0/8                                                       +19%
BM_UnaryPingPong<MinTCP, NoOpMutator, NoOpMutator>/1/0                                                       +19%
BM_UnaryPingPong<MinTCP, NoOpMutator, NoOpMutator>/1/1                                                       +19%
BM_UnaryPingPong<MinTCP, NoOpMutator, NoOpMutator>/262144/0                                                  +16%
BM_UnaryPingPong<MinTCP, NoOpMutator, NoOpMutator>/262144/262144                                             +13%
BM_UnaryPingPong<MinTCP, NoOpMutator, NoOpMutator>/32768/0                                                   +16%
BM_UnaryPingPong<MinTCP, NoOpMutator, NoOpMutator>/32768/32768                                               +14%
BM_UnaryPingPong<MinTCP, NoOpMutator, NoOpMutator>/4096/0                                                    +16%
BM_UnaryPingPong<MinTCP, NoOpMutator, NoOpMutator>/4096/4096                                                 +14%
BM_UnaryPingPong<MinTCP, NoOpMutator, NoOpMutator>/512/0                                                     +16%
BM_UnaryPingPong<MinTCP, NoOpMutator, NoOpMutator>/512/512                                                   +15%
BM_UnaryPingPong<MinTCP, NoOpMutator, NoOpMutator>/64/0                                                      +17%
BM_UnaryPingPong<MinTCP, NoOpMutator, NoOpMutator>/64/64                                                     +15%
BM_UnaryPingPong<MinTCP, NoOpMutator, NoOpMutator>/8/0                                                       +19%
BM_UnaryPingPong<MinTCP, NoOpMutator, NoOpMutator>/8/8                                                       +19%
BM_UnaryPingPong<MinUDS, NoOpMutator, NoOpMutator>/0/0                                                       +19%
BM_UnaryPingPong<SockPair, NoOpMutator, NoOpMutator>/0/0                                                     +19%
BM_UnaryPingPong<TCP, NoOpMutator, NoOpMutator>/0/0                                                          +19%
BM_UnaryPingPong<TCP, NoOpMutator, NoOpMutator>/0/1                                                          +19%
BM_UnaryPingPong<TCP, NoOpMutator, NoOpMutator>/0/262144                                                     +16%
BM_UnaryPingPong<TCP, NoOpMutator, NoOpMutator>/0/32768                                                      +16%
BM_UnaryPingPong<TCP, NoOpMutator, NoOpMutator>/0/4096                                                       +16%
BM_UnaryPingPong<TCP, NoOpMutator, NoOpMutator>/0/512                                                        +16%
BM_UnaryPingPong<TCP, NoOpMutator, NoOpMutator>/0/64                                                         +17%
BM_UnaryPingPong<TCP, NoOpMutator, NoOpMutator>/0/8                                                          +19%
BM_UnaryPingPong<TCP, NoOpMutator, NoOpMutator>/1/0                                                          +19%
BM_UnaryPingPong<TCP, NoOpMutator, NoOpMutator>/1/1                                                          +19%
BM_UnaryPingPong<TCP, NoOpMutator, NoOpMutator>/2097152/0                                                    +5%
BM_UnaryPingPong<TCP, NoOpMutator, NoOpMutator>/262144/0                                                     +16%
BM_UnaryPingPong<TCP, NoOpMutator, NoOpMutator>/262144/262144                                                +13%
BM_UnaryPingPong<TCP, NoOpMutator, NoOpMutator>/32768/0                                                      +16%
BM_UnaryPingPong<TCP, NoOpMutator, NoOpMutator>/32768/32768                                                  +14%
BM_UnaryPingPong<TCP, NoOpMutator, NoOpMutator>/4096/0                                                       +16%
BM_UnaryPingPong<TCP, NoOpMutator, NoOpMutator>/4096/4096                                                    +14%
BM_UnaryPingPong<TCP, NoOpMutator, NoOpMutator>/512/0                                                        +16%
BM_UnaryPingPong<TCP, NoOpMutator, NoOpMutator>/512/512                                                      +15%
BM_UnaryPingPong<TCP, NoOpMutator, NoOpMutator>/64/0                                                         +17%
BM_UnaryPingPong<TCP, NoOpMutator, NoOpMutator>/64/64                                                        +15%
BM_UnaryPingPong<TCP, NoOpMutator, NoOpMutator>/8/0                                                          +19%
BM_UnaryPingPong<TCP, NoOpMutator, NoOpMutator>/8/8                                                          +18%
BM_UnaryPingPong<UDS, NoOpMutator, NoOpMutator>/0/0                                                          +19%

@grpc-testing
Copy link
Copy Markdown

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

libgrpc.so

     VM SIZE                                                                           FILE SIZE
 ++++++++++++++ GROWING                                                             ++++++++++++++
   +11%     +48 src/core/lib/iomgr/polling_entity.cc                                    +48   +11%
       +32%     +48 grpc_polling_entity_add_to_pollset_set                                  +48   +32%
  +0.1%     +16 src/core/lib/surface/call.cc                                            +16  +0.1%
       +20%     +12 release_call                                                            +12   +20%
      +1.0%      +4 [Unmapped]                                                               +4  +1.0%

 -------------- SHRINKING                                                           --------------
  -0.3% -1.78Ki [None]                                                              -56.2Ki  -0.6%
      -0.3% -1.69Ki [Unmapped]                                                          -56.1Ki  -0.6%
      [DEL]     -88 grpc_server_load_reporting_filter                                       -88  [DEL]
  [DEL]   -1015 src/core/ext/filters/load_reporting/server_load_reporting_filter.cc   -1015  [DEL]
      [DEL]    -441 on_initial_md_ready                                                    -441  [DEL]
      [DEL]    -148 lr_start_transport_stream_op_batch                                     -148  [DEL]
      [DEL]    -121 lr_trailing_md_filter                                                  -121  [DEL]
      [DEL]    -119 destroy_call_elem                                                      -119  [DEL]
      [DEL]     -71 init_channel_elem                                                       -71  [DEL]
      [DEL]     -62 [Unmapped]                                                              -62  [DEL]
      [DEL]     -51 init_call_elem                                                          -51  [DEL]
      [DEL]      -2 destroy_channel_elem                                                     -2  [DEL]
  [DEL]    -258 src/core/ext/filters/load_reporting/server_load_reporting_plugin.cc    -258  [DEL]
      [DEL]    -134 maybe_add_server_load_reporting_filter                                 -134  [DEL]
      [DEL]     -71 grpc_load_reporting_enable_arg                                          -71  [DEL]
      [DEL]     -29 grpc_server_load_reporting_plugin_init                                  -29  [DEL]
      [DEL]     -22 [Unmapped]                                                              -22  [DEL]
      [DEL]      -2 grpc_server_load_reporting_plugin_shutdown                               -2  [DEL]
  -2.1%     -96 src/core/lib/slice/slice_buffer.cc                                      -96  -2.1%
     -20.5%    -108 grpc_slice_buffer_trim_end                                             -108 -20.5%
  -1.6%     -32 src/core/ext/filters/deadline/deadline_filter.cc                        -32  -1.6%
     -38.3%     -36 recv_initial_metadata_ready                                             -36 -38.3%
  -0.5%     -32 src/core/lib/iomgr/error.cc                                             -32  -0.5%
     -15.8%     -28 [Unmapped]                                                              -28 -15.8%
      [DEL]      -2 grpc_enable_error_creation                                               -2  [DEL]
      [DEL]      -2 grpc_disable_error_creation                                              -2  [DEL]
  -5.4%     -19 src/core/plugin_registry/grpc_plugin_registry.cc                        -19  -5.4%
      -5.4%     -19 grpc_register_built_in_plugins                                          -19  -5.4%

  -0.2% -3.13Ki TOTAL                                                               -57.5Ki  -0.6%


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

libgrpc++.so

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

 -------------- SHRINKING                                            --------------
  -0.4%     -60 src/cpp/client/generic_stub.cc                           -60  -0.4%
      -2.9%     -60 grpc::internal::CallOpClientRecvStatus::FinishOp         -60  -2.9%

 -+-+-+-+-+-+-+ MIXED                                                +-+-+-+-+-+-+-
  -0.0%      -4 [None]                                                  +516  +0.0%

  -0.0%     -64 TOTAL                                                   +456  +0.0%



@grpc-testing
Copy link
Copy Markdown

[trickle] No significant performance differences

@grpc-testing
Copy link
Copy Markdown



Missing files (indicates new benchmark): 
    bm_call_create.BM_IsolatedFilter_LoadReportingFilter_SendEmptyMetadata_.counters.new: 10
    bm_call_create.BM_IsolatedFilter_LoadReportingFilter_SendEmptyMetadata_.opt.new: 10
    bm_call_create.BM_IsolatedFilter_LoadReportingFilter_NoOp_.opt.new: 10
    bm_call_create.BM_IsolatedFilter_LoadReportingFilter_NoOp_.counters.new: 10


[microbenchmarks] Performance differences noted:
Benchmark                                                                                                    allocs_per_iteration    cpu_time    real_time
-----------------------------------------------------------------------------------------------------------  ----------------------  ----------  -----------
BM_StreamingPingPong<InProcess, NoOpMutator, NoOpMutator>/262144/1                                                                   -5%         -5%
BM_StreamingPingPong<InProcessCHTTP2, NoOpMutator, NoOpMutator>/0/0                                          +49%
BM_StreamingPingPong<InProcessCHTTP2, NoOpMutator, NoOpMutator>/0/1                                          +19%
BM_StreamingPingPong<InProcessCHTTP2, NoOpMutator, NoOpMutator>/0/2                                          +12%
BM_StreamingPingPong<InProcessCHTTP2, NoOpMutator, NoOpMutator>/1/1                                          +19%
BM_StreamingPingPong<InProcessCHTTP2, NoOpMutator, NoOpMutator>/1/2                                          +12%
BM_StreamingPingPong<InProcessCHTTP2, NoOpMutator, NoOpMutator>/2097152/1                                    +6%
BM_StreamingPingPong<InProcessCHTTP2, NoOpMutator, NoOpMutator>/262144/1                                     +13%
BM_StreamingPingPong<InProcessCHTTP2, NoOpMutator, NoOpMutator>/262144/2                                     +7%
BM_StreamingPingPong<InProcessCHTTP2, NoOpMutator, NoOpMutator>/32768/1                                      +14%
BM_StreamingPingPong<InProcessCHTTP2, NoOpMutator, NoOpMutator>/32768/2                                      +8%
BM_StreamingPingPong<InProcessCHTTP2, NoOpMutator, NoOpMutator>/4096/1                                       +14%
BM_StreamingPingPong<InProcessCHTTP2, NoOpMutator, NoOpMutator>/4096/2                                       +8%
BM_StreamingPingPong<InProcessCHTTP2, NoOpMutator, NoOpMutator>/512/1                                        +14%
BM_StreamingPingPong<InProcessCHTTP2, NoOpMutator, NoOpMutator>/512/2                                        +8%
BM_StreamingPingPong<InProcessCHTTP2, NoOpMutator, NoOpMutator>/64/1                                         +14%
BM_StreamingPingPong<InProcessCHTTP2, NoOpMutator, NoOpMutator>/64/2                                         +8%
BM_StreamingPingPong<InProcessCHTTP2, NoOpMutator, NoOpMutator>/8/1                                          +19%
BM_StreamingPingPong<InProcessCHTTP2, NoOpMutator, NoOpMutator>/8/2                                          +12%
BM_StreamingPingPong<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/0/0                                       +49%
BM_StreamingPingPong<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/0/1                                       +19%
BM_StreamingPingPong<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/0/2                                       +12%
BM_StreamingPingPong<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/1/1                                       +19%
BM_StreamingPingPong<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/1/2                                       +12%
BM_StreamingPingPong<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/2097152/1                                 +7%
BM_StreamingPingPong<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/262144/1                                  +13%
BM_StreamingPingPong<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/262144/2                                  +7%
BM_StreamingPingPong<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/32768/1                                   +14%
BM_StreamingPingPong<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/32768/2                                   +8%
BM_StreamingPingPong<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/4096/1                                    +14%
BM_StreamingPingPong<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/4096/2                                    +8%
BM_StreamingPingPong<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/512/1                                     +14%
BM_StreamingPingPong<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/512/2                                     +8%
BM_StreamingPingPong<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/64/1                                      +14%
BM_StreamingPingPong<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/64/2                                      +8%
BM_StreamingPingPong<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/8/1                                       +19%
BM_StreamingPingPong<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/8/2                                       +12%
BM_StreamingPingPong<MinTCP, NoOpMutator, NoOpMutator>/0/0                                                   +47%
BM_StreamingPingPong<MinTCP, NoOpMutator, NoOpMutator>/0/1                                                   +18%
BM_StreamingPingPong<MinTCP, NoOpMutator, NoOpMutator>/0/2                                                   +11%
BM_StreamingPingPong<MinTCP, NoOpMutator, NoOpMutator>/1/1                                                   +18%
BM_StreamingPingPong<MinTCP, NoOpMutator, NoOpMutator>/1/2                                                   +11%
BM_StreamingPingPong<MinTCP, NoOpMutator, NoOpMutator>/262144/1                                              +13%
BM_StreamingPingPong<MinTCP, NoOpMutator, NoOpMutator>/262144/2                                              +7%
BM_StreamingPingPong<MinTCP, NoOpMutator, NoOpMutator>/32768/1                                               +14%
BM_StreamingPingPong<MinTCP, NoOpMutator, NoOpMutator>/32768/2                                               +8%
BM_StreamingPingPong<MinTCP, NoOpMutator, NoOpMutator>/4096/1                                                +15%
BM_StreamingPingPong<MinTCP, NoOpMutator, NoOpMutator>/4096/2                                                +8%
BM_StreamingPingPong<MinTCP, NoOpMutator, NoOpMutator>/512/1                                                 +15%
BM_StreamingPingPong<MinTCP, NoOpMutator, NoOpMutator>/512/2                                                 +8%
BM_StreamingPingPong<MinTCP, NoOpMutator, NoOpMutator>/64/1                                                  +15%
BM_StreamingPingPong<MinTCP, NoOpMutator, NoOpMutator>/64/2                                                  +9%
BM_StreamingPingPong<MinTCP, NoOpMutator, NoOpMutator>/8/1                                                   +18%
BM_StreamingPingPong<MinTCP, NoOpMutator, NoOpMutator>/8/2                                                   +11%
BM_StreamingPingPong<TCP, NoOpMutator, NoOpMutator>/0/0                                                      +47%
BM_StreamingPingPong<TCP, NoOpMutator, NoOpMutator>/0/1                                                      +18%
BM_StreamingPingPong<TCP, NoOpMutator, NoOpMutator>/0/2                                                      +11%
BM_StreamingPingPong<TCP, NoOpMutator, NoOpMutator>/1/1                                                      +18%
BM_StreamingPingPong<TCP, NoOpMutator, NoOpMutator>/1/2                                                      +11%
BM_StreamingPingPong<TCP, NoOpMutator, NoOpMutator>/262144/1                                                 +13%
BM_StreamingPingPong<TCP, NoOpMutator, NoOpMutator>/262144/2                                                 +7%
BM_StreamingPingPong<TCP, NoOpMutator, NoOpMutator>/32768/1                                                  +14%
BM_StreamingPingPong<TCP, NoOpMutator, NoOpMutator>/32768/2                                                  +8%
BM_StreamingPingPong<TCP, NoOpMutator, NoOpMutator>/4096/1                                                   +14%
BM_StreamingPingPong<TCP, NoOpMutator, NoOpMutator>/4096/2                                                   +8%
BM_StreamingPingPong<TCP, NoOpMutator, NoOpMutator>/512/1                                                    +14%
BM_StreamingPingPong<TCP, NoOpMutator, NoOpMutator>/512/2                                                    +8%
BM_StreamingPingPong<TCP, NoOpMutator, NoOpMutator>/64/1                                                     +15%
BM_StreamingPingPong<TCP, NoOpMutator, NoOpMutator>/64/2                                                     +9%
BM_StreamingPingPong<TCP, NoOpMutator, NoOpMutator>/8/1                                                      +18%
BM_StreamingPingPong<TCP, NoOpMutator, NoOpMutator>/8/2                                                      +11%
BM_StreamingPingPongMsgs<InProcess, NoOpMutator, NoOpMutator>/32768                                                                  -4%         -4%
BM_StreamingPingPongWithCoalescingApi<InProcessCHTTP2, NoOpMutator, NoOpMutator>/0/0/0                       +49%
BM_StreamingPingPongWithCoalescingApi<InProcessCHTTP2, NoOpMutator, NoOpMutator>/0/0/1                       +49%
BM_StreamingPingPongWithCoalescingApi<InProcessCHTTP2, NoOpMutator, NoOpMutator>/0/1/0                       +19%
BM_StreamingPingPongWithCoalescingApi<InProcessCHTTP2, NoOpMutator, NoOpMutator>/0/1/1                       +19%
BM_StreamingPingPongWithCoalescingApi<InProcessCHTTP2, NoOpMutator, NoOpMutator>/0/2/0                       +12%
BM_StreamingPingPongWithCoalescingApi<InProcessCHTTP2, NoOpMutator, NoOpMutator>/0/2/1                       +12%
BM_StreamingPingPongWithCoalescingApi<InProcessCHTTP2, NoOpMutator, NoOpMutator>/1/1/0                       +19%
BM_StreamingPingPongWithCoalescingApi<InProcessCHTTP2, NoOpMutator, NoOpMutator>/1/1/1                       +19%
BM_StreamingPingPongWithCoalescingApi<InProcessCHTTP2, NoOpMutator, NoOpMutator>/1/2/0                       +12%
BM_StreamingPingPongWithCoalescingApi<InProcessCHTTP2, NoOpMutator, NoOpMutator>/1/2/1                       +12%
BM_StreamingPingPongWithCoalescingApi<InProcessCHTTP2, NoOpMutator, NoOpMutator>/2097152/1/0                 +7%
BM_StreamingPingPongWithCoalescingApi<InProcessCHTTP2, NoOpMutator, NoOpMutator>/2097152/1/1                 +4%
BM_StreamingPingPongWithCoalescingApi<InProcessCHTTP2, NoOpMutator, NoOpMutator>/262144/1/0                  +13%
BM_StreamingPingPongWithCoalescingApi<InProcessCHTTP2, NoOpMutator, NoOpMutator>/262144/1/1                  +13%
BM_StreamingPingPongWithCoalescingApi<InProcessCHTTP2, NoOpMutator, NoOpMutator>/262144/2/0                  +7%
BM_StreamingPingPongWithCoalescingApi<InProcessCHTTP2, NoOpMutator, NoOpMutator>/262144/2/1                  +7%
BM_StreamingPingPongWithCoalescingApi<InProcessCHTTP2, NoOpMutator, NoOpMutator>/32768/1/0                   +14%
BM_StreamingPingPongWithCoalescingApi<InProcessCHTTP2, NoOpMutator, NoOpMutator>/32768/1/1                   +14%
BM_StreamingPingPongWithCoalescingApi<InProcessCHTTP2, NoOpMutator, NoOpMutator>/32768/2/0                   +8%
BM_StreamingPingPongWithCoalescingApi<InProcessCHTTP2, NoOpMutator, NoOpMutator>/32768/2/1                   +8%
BM_StreamingPingPongWithCoalescingApi<InProcessCHTTP2, NoOpMutator, NoOpMutator>/4096/1/0                    +14%
BM_StreamingPingPongWithCoalescingApi<InProcessCHTTP2, NoOpMutator, NoOpMutator>/4096/1/1                    +14%
BM_StreamingPingPongWithCoalescingApi<InProcessCHTTP2, NoOpMutator, NoOpMutator>/4096/2/0                    +8%
BM_StreamingPingPongWithCoalescingApi<InProcessCHTTP2, NoOpMutator, NoOpMutator>/4096/2/1                    +8%
BM_StreamingPingPongWithCoalescingApi<InProcessCHTTP2, NoOpMutator, NoOpMutator>/512/1/0                     +14%
BM_StreamingPingPongWithCoalescingApi<InProcessCHTTP2, NoOpMutator, NoOpMutator>/512/1/1                     +14%
BM_StreamingPingPongWithCoalescingApi<InProcessCHTTP2, NoOpMutator, NoOpMutator>/512/2/0                     +8%
BM_StreamingPingPongWithCoalescingApi<InProcessCHTTP2, NoOpMutator, NoOpMutator>/512/2/1                     +8%
BM_StreamingPingPongWithCoalescingApi<InProcessCHTTP2, NoOpMutator, NoOpMutator>/64/1/0                      +14%
BM_StreamingPingPongWithCoalescingApi<InProcessCHTTP2, NoOpMutator, NoOpMutator>/64/1/1                      +14%
BM_StreamingPingPongWithCoalescingApi<InProcessCHTTP2, NoOpMutator, NoOpMutator>/64/2/0                      +8%
BM_StreamingPingPongWithCoalescingApi<InProcessCHTTP2, NoOpMutator, NoOpMutator>/64/2/1                      +8%
BM_StreamingPingPongWithCoalescingApi<InProcessCHTTP2, NoOpMutator, NoOpMutator>/8/1/0                       +19%
BM_StreamingPingPongWithCoalescingApi<InProcessCHTTP2, NoOpMutator, NoOpMutator>/8/1/1                       +19%
BM_StreamingPingPongWithCoalescingApi<InProcessCHTTP2, NoOpMutator, NoOpMutator>/8/2/0                       +12%
BM_StreamingPingPongWithCoalescingApi<InProcessCHTTP2, NoOpMutator, NoOpMutator>/8/2/1                       +12%
BM_StreamingPingPongWithCoalescingApi<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/0/0/0                    +49%
BM_StreamingPingPongWithCoalescingApi<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/0/0/1                    +49%
BM_StreamingPingPongWithCoalescingApi<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/0/1/0                    +19%
BM_StreamingPingPongWithCoalescingApi<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/0/1/1                    +19%
BM_StreamingPingPongWithCoalescingApi<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/0/2/0                    +12%
BM_StreamingPingPongWithCoalescingApi<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/0/2/1                    +12%
BM_StreamingPingPongWithCoalescingApi<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/1/1/0                    +19%
BM_StreamingPingPongWithCoalescingApi<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/1/1/1                    +19%
BM_StreamingPingPongWithCoalescingApi<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/1/2/0                    +12%
BM_StreamingPingPongWithCoalescingApi<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/1/2/1                    +12%
BM_StreamingPingPongWithCoalescingApi<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/2097152/1/0              +5%
BM_StreamingPingPongWithCoalescingApi<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/2097152/1/1              +6%
BM_StreamingPingPongWithCoalescingApi<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/262144/1/0               +13%
BM_StreamingPingPongWithCoalescingApi<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/262144/1/1               +13%
BM_StreamingPingPongWithCoalescingApi<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/262144/2/0               +7%
BM_StreamingPingPongWithCoalescingApi<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/262144/2/1               +7%
BM_StreamingPingPongWithCoalescingApi<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/32768/1/0                +14%
BM_StreamingPingPongWithCoalescingApi<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/32768/1/1                +14%
BM_StreamingPingPongWithCoalescingApi<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/32768/2/0                +8%
BM_StreamingPingPongWithCoalescingApi<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/32768/2/1                +8%
BM_StreamingPingPongWithCoalescingApi<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/4096/1/0                 +14%
BM_StreamingPingPongWithCoalescingApi<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/4096/1/1                 +14%
BM_StreamingPingPongWithCoalescingApi<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/4096/2/0                 +8%
BM_StreamingPingPongWithCoalescingApi<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/4096/2/1                 +8%
BM_StreamingPingPongWithCoalescingApi<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/512/1/0                  +14%
BM_StreamingPingPongWithCoalescingApi<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/512/1/1                  +14%
BM_StreamingPingPongWithCoalescingApi<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/512/2/0                  +8%
BM_StreamingPingPongWithCoalescingApi<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/512/2/1                  +8%
BM_StreamingPingPongWithCoalescingApi<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/64/1/0                   +14%
BM_StreamingPingPongWithCoalescingApi<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/64/1/1                   +14%
BM_StreamingPingPongWithCoalescingApi<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/64/2/0                   +8%
BM_StreamingPingPongWithCoalescingApi<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/64/2/1                   +8%
BM_StreamingPingPongWithCoalescingApi<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/8/1/0                    +19%
BM_StreamingPingPongWithCoalescingApi<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/8/1/1                    +19%
BM_StreamingPingPongWithCoalescingApi<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/8/2/0                    +12%
BM_StreamingPingPongWithCoalescingApi<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/8/2/1                    +12%
BM_UnaryPingPong<InProcessCHTTP2, Client_AddMetadata<RandomAsciiMetadata<100>, 1>, NoOpMutator>/0/0          +13%
BM_UnaryPingPong<InProcessCHTTP2, Client_AddMetadata<RandomAsciiMetadata<10>, 1>, NoOpMutator>/0/0           +15%
BM_UnaryPingPong<InProcessCHTTP2, Client_AddMetadata<RandomAsciiMetadata<31>, 1>, NoOpMutator>/0/0           +13%
BM_UnaryPingPong<InProcessCHTTP2, Client_AddMetadata<RandomBinaryMetadata<100>, 1>, NoOpMutator>/0/0         +13%
BM_UnaryPingPong<InProcessCHTTP2, Client_AddMetadata<RandomBinaryMetadata<100>, 2>, NoOpMutator>/0/0         +11%
BM_UnaryPingPong<InProcessCHTTP2, Client_AddMetadata<RandomBinaryMetadata<10>, 1>, NoOpMutator>/0/0          +15%
BM_UnaryPingPong<InProcessCHTTP2, Client_AddMetadata<RandomBinaryMetadata<10>, 2>, NoOpMutator>/0/0          +14%
BM_UnaryPingPong<InProcessCHTTP2, Client_AddMetadata<RandomBinaryMetadata<31>, 1>, NoOpMutator>/0/0          +13%
BM_UnaryPingPong<InProcessCHTTP2, Client_AddMetadata<RandomBinaryMetadata<31>, 2>, NoOpMutator>/0/0          +11%
BM_UnaryPingPong<InProcessCHTTP2, NoOpMutator, NoOpMutator>/0/0                                              +19%
BM_UnaryPingPong<InProcessCHTTP2, NoOpMutator, NoOpMutator>/0/1                                              +19%
BM_UnaryPingPong<InProcessCHTTP2, NoOpMutator, NoOpMutator>/0/2097152                                        +11%
BM_UnaryPingPong<InProcessCHTTP2, NoOpMutator, NoOpMutator>/0/262144                                         +16%
BM_UnaryPingPong<InProcessCHTTP2, NoOpMutator, NoOpMutator>/0/32768                                          +16%
BM_UnaryPingPong<InProcessCHTTP2, NoOpMutator, NoOpMutator>/0/4096                                           +16%
BM_UnaryPingPong<InProcessCHTTP2, NoOpMutator, NoOpMutator>/0/512                                            +16%
BM_UnaryPingPong<InProcessCHTTP2, NoOpMutator, NoOpMutator>/0/64                                             +16%
BM_UnaryPingPong<InProcessCHTTP2, NoOpMutator, NoOpMutator>/0/8                                              +19%
BM_UnaryPingPong<InProcessCHTTP2, NoOpMutator, NoOpMutator>/1/0                                              +19%
BM_UnaryPingPong<InProcessCHTTP2, NoOpMutator, NoOpMutator>/1/1                                              +19%
BM_UnaryPingPong<InProcessCHTTP2, NoOpMutator, NoOpMutator>/2097152/0                                        +10%
BM_UnaryPingPong<InProcessCHTTP2, NoOpMutator, NoOpMutator>/2097152/2097152                                  +4%
BM_UnaryPingPong<InProcessCHTTP2, NoOpMutator, NoOpMutator>/262144/0                                         +16%
BM_UnaryPingPong<InProcessCHTTP2, NoOpMutator, NoOpMutator>/262144/262144                                    +13%
BM_UnaryPingPong<InProcessCHTTP2, NoOpMutator, NoOpMutator>/32768/0                                          +16%
BM_UnaryPingPong<InProcessCHTTP2, NoOpMutator, NoOpMutator>/32768/32768                                      +14%
BM_UnaryPingPong<InProcessCHTTP2, NoOpMutator, NoOpMutator>/4096/0                                           +16%
BM_UnaryPingPong<InProcessCHTTP2, NoOpMutator, NoOpMutator>/4096/4096                                        +14%
BM_UnaryPingPong<InProcessCHTTP2, NoOpMutator, NoOpMutator>/512/0                                            +16%
BM_UnaryPingPong<InProcessCHTTP2, NoOpMutator, NoOpMutator>/512/512                                          +14%
BM_UnaryPingPong<InProcessCHTTP2, NoOpMutator, NoOpMutator>/64/0                                             +16%
BM_UnaryPingPong<InProcessCHTTP2, NoOpMutator, NoOpMutator>/64/64                                            +14%
BM_UnaryPingPong<InProcessCHTTP2, NoOpMutator, NoOpMutator>/8/0                                              +19%
BM_UnaryPingPong<InProcessCHTTP2, NoOpMutator, NoOpMutator>/8/8                                              +19%
BM_UnaryPingPong<InProcessCHTTP2, NoOpMutator, Server_AddInitialMetadata<RandomAsciiMetadata<100>, 1>>/0/0   +12%
BM_UnaryPingPong<InProcessCHTTP2, NoOpMutator, Server_AddInitialMetadata<RandomAsciiMetadata<10>, 1>>/0/0    +14%
BM_UnaryPingPong<InProcessCHTTP2, NoOpMutator, Server_AddInitialMetadata<RandomAsciiMetadata<31>, 1>>/0/0    +12%
BM_UnaryPingPong<InProcessCHTTP2, NoOpMutator, Server_AddInitialMetadata<RandomBinaryMetadata<100>, 1>>/0/0  +12%
BM_UnaryPingPong<InProcessCHTTP2, NoOpMutator, Server_AddInitialMetadata<RandomBinaryMetadata<10>, 1>>/0/0   +14%
BM_UnaryPingPong<InProcessCHTTP2, NoOpMutator, Server_AddInitialMetadata<RandomBinaryMetadata<31>, 1>>/0/0   +12%
BM_UnaryPingPong<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/0/0                                           +19%
BM_UnaryPingPong<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/0/1                                           +19%
BM_UnaryPingPong<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/0/2097152                                     +11%
BM_UnaryPingPong<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/0/262144                                      +16%
BM_UnaryPingPong<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/0/32768                                       +16%
BM_UnaryPingPong<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/0/4096                                        +16%
BM_UnaryPingPong<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/0/512                                         +16%
BM_UnaryPingPong<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/0/64                                          +16%
BM_UnaryPingPong<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/0/8                                           +19%
BM_UnaryPingPong<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/1/0                                           +19%
BM_UnaryPingPong<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/1/1                                           +19%
BM_UnaryPingPong<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/2097152/0                                     +10%
BM_UnaryPingPong<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/2097152/2097152                               +5%
BM_UnaryPingPong<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/262144/0                                      +16%
BM_UnaryPingPong<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/262144/262144                                 +13%
BM_UnaryPingPong<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/32768/0                                       +16%
BM_UnaryPingPong<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/32768/32768                                   +14%
BM_UnaryPingPong<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/4096/0                                        +16%
BM_UnaryPingPong<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/4096/4096                                     +14%
BM_UnaryPingPong<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/512/0                                         +16%
BM_UnaryPingPong<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/512/512                                       +14%
BM_UnaryPingPong<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/64/0                                          +16%
BM_UnaryPingPong<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/64/64                                         +14%
BM_UnaryPingPong<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/8/0                                           +19%
BM_UnaryPingPong<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/8/8                                           +19%
BM_UnaryPingPong<MinSockPair, NoOpMutator, NoOpMutator>/0/0                                                  +19%
BM_UnaryPingPong<MinTCP, NoOpMutator, NoOpMutator>/0/0                                                       +19%
BM_UnaryPingPong<MinTCP, NoOpMutator, NoOpMutator>/0/1                                                       +19%
BM_UnaryPingPong<MinTCP, NoOpMutator, NoOpMutator>/0/262144                                                  +15%
BM_UnaryPingPong<MinTCP, NoOpMutator, NoOpMutator>/0/32768                                                   +16%
BM_UnaryPingPong<MinTCP, NoOpMutator, NoOpMutator>/0/4096                                                    +16%
BM_UnaryPingPong<MinTCP, NoOpMutator, NoOpMutator>/0/512                                                     +16%
BM_UnaryPingPong<MinTCP, NoOpMutator, NoOpMutator>/0/64                                                      +17%
BM_UnaryPingPong<MinTCP, NoOpMutator, NoOpMutator>/0/8                                                       +19%
BM_UnaryPingPong<MinTCP, NoOpMutator, NoOpMutator>/1/0                                                       +19%
BM_UnaryPingPong<MinTCP, NoOpMutator, NoOpMutator>/1/1                                                       +19%
BM_UnaryPingPong<MinTCP, NoOpMutator, NoOpMutator>/262144/0                                                  +16%
BM_UnaryPingPong<MinTCP, NoOpMutator, NoOpMutator>/262144/262144                                             +12%
BM_UnaryPingPong<MinTCP, NoOpMutator, NoOpMutator>/32768/0                                                   +16%
BM_UnaryPingPong<MinTCP, NoOpMutator, NoOpMutator>/32768/32768                                               +14%
BM_UnaryPingPong<MinTCP, NoOpMutator, NoOpMutator>/4096/0                                                    +16%
BM_UnaryPingPong<MinTCP, NoOpMutator, NoOpMutator>/4096/4096                                                 +14%
BM_UnaryPingPong<MinTCP, NoOpMutator, NoOpMutator>/512/0                                                     +16%
BM_UnaryPingPong<MinTCP, NoOpMutator, NoOpMutator>/512/512                                                   +15%
BM_UnaryPingPong<MinTCP, NoOpMutator, NoOpMutator>/64/0                                                      +17%
BM_UnaryPingPong<MinTCP, NoOpMutator, NoOpMutator>/64/64                                                     +15%
BM_UnaryPingPong<MinTCP, NoOpMutator, NoOpMutator>/8/0                                                       +18%
BM_UnaryPingPong<MinTCP, NoOpMutator, NoOpMutator>/8/8                                                       +18%
BM_UnaryPingPong<MinUDS, NoOpMutator, NoOpMutator>/0/0                                                       +19%
BM_UnaryPingPong<SockPair, NoOpMutator, NoOpMutator>/0/0                                                     +19%
BM_UnaryPingPong<TCP, NoOpMutator, NoOpMutator>/0/0                                                          +19%
BM_UnaryPingPong<TCP, NoOpMutator, NoOpMutator>/0/1                                                          +19%
BM_UnaryPingPong<TCP, NoOpMutator, NoOpMutator>/0/262144                                                     +15%
BM_UnaryPingPong<TCP, NoOpMutator, NoOpMutator>/0/32768                                                      +16%
BM_UnaryPingPong<TCP, NoOpMutator, NoOpMutator>/0/4096                                                       +16%
BM_UnaryPingPong<TCP, NoOpMutator, NoOpMutator>/0/512                                                        +16%
BM_UnaryPingPong<TCP, NoOpMutator, NoOpMutator>/0/64                                                         +17%
BM_UnaryPingPong<TCP, NoOpMutator, NoOpMutator>/0/8                                                          +18%
BM_UnaryPingPong<TCP, NoOpMutator, NoOpMutator>/1/0                                                          +18%
BM_UnaryPingPong<TCP, NoOpMutator, NoOpMutator>/1/1                                                          +18%
BM_UnaryPingPong<TCP, NoOpMutator, NoOpMutator>/2097152/0                                                    +4%
BM_UnaryPingPong<TCP, NoOpMutator, NoOpMutator>/262144/0                                                     +16%
BM_UnaryPingPong<TCP, NoOpMutator, NoOpMutator>/262144/262144                                                +12%
BM_UnaryPingPong<TCP, NoOpMutator, NoOpMutator>/32768/0                                                      +16%
BM_UnaryPingPong<TCP, NoOpMutator, NoOpMutator>/32768/32768                                                  +14%
BM_UnaryPingPong<TCP, NoOpMutator, NoOpMutator>/4096/0                                                       +16%
BM_UnaryPingPong<TCP, NoOpMutator, NoOpMutator>/4096/4096                                                    +14%
BM_UnaryPingPong<TCP, NoOpMutator, NoOpMutator>/512/0                                                        +16%
BM_UnaryPingPong<TCP, NoOpMutator, NoOpMutator>/512/512                                                      +15%
BM_UnaryPingPong<TCP, NoOpMutator, NoOpMutator>/64/0                                                         +17%
BM_UnaryPingPong<TCP, NoOpMutator, NoOpMutator>/64/64                                                        +15%
BM_UnaryPingPong<TCP, NoOpMutator, NoOpMutator>/8/0                                                          +18%
BM_UnaryPingPong<TCP, NoOpMutator, NoOpMutator>/8/8                                                          +18%
BM_UnaryPingPong<UDS, NoOpMutator, NoOpMutator>/0/0                                                          +19%

@markdroth
Copy link
Copy Markdown
Member

Looks like this is moving in the right direction!


Reviewed 4 of 6 files at r5, 4 of 4 files at r6.
Review status: all files reviewed, 3 unresolved discussions (waiting on @AspirinSJL, @dgquintas, and @summerxyt)


src/core/ext/filters/load_reporting/server_load_reporting_filter.cc, line 105 at r4 (raw file):

Previously, AspirinSJL (Juanli Shen) wrote…

Done.

My IDE keeps telling me to use auto after casting. Any reason we don't want to use auto here?

The style guide says to only use auto when it helps readability, which I guess is a bit of a judgement call:

https://google.github.io/styleguide/cppguide.html#auto

I personally prefer to make const-ness and pointer/reference types explicit in conjunction with auto (e.g., use auto* or auto& for pointers/references and const auto when it's const). And in this case, doing that would defeat the purpose, because const auto* is no shorter than const char*.


src/core/ext/filters/load_reporting/server_load_reporting_filter.cc, line 93 at r6 (raw file):

 private:
  typedef struct cost_entry {

Please use C++ style here: no need for the typedef, and the name should be CostEntry.


src/core/ext/filters/load_reporting/server_load_reporting_filter.cc, line 95 at r6 (raw file):

  typedef struct cost_entry {
    double cost;
    const char cost_name_start[];

Seems weird to have a struct element declared as an array with no size. Maybe make this a pointer instead?


src/cpp/common/channel_filter.h, line 210 at r6 (raw file):

  }

  const gpr_atm* get_peer_string() const {

This doesn't seem like quite the right API, because the peer string is handled as part of the send_initial_metadata op on the client side and part of the recv_initial_metadata op on the server side. So I think we need to either make different methods for the two or else have this method check both to see which one is non-null.


Comments from Reviewable

@AspirinSJL
Copy link
Copy Markdown
Contributor Author

Great!

I have my fourth PR (load reporting service) ready now. But it's based on all the commit history from the previous PRs so it has a lot of noise. I will publish that one after this one is merged.


Review status: all files reviewed, 3 unresolved discussions (waiting on @markdroth, @dgquintas, and @summerxyt)


src/core/ext/filters/load_reporting/server_load_reporting_filter.cc, line 105 at r4 (raw file):

Previously, markdroth (Mark D. Roth) wrote…

The style guide says to only use auto when it helps readability, which I guess is a bit of a judgement call:

https://google.github.io/styleguide/cppguide.html#auto

I personally prefer to make const-ness and pointer/reference types explicit in conjunction with auto (e.g., use auto* or auto& for pointers/references and const auto when it's const). And in this case, doing that would defeat the purpose, because const auto* is no shorter than const char*.

Got it!


src/core/ext/filters/load_reporting/server_load_reporting_filter.cc, line 93 at r6 (raw file):

Previously, markdroth (Mark D. Roth) wrote…

Please use C++ style here: no need for the typedef, and the name should be CostEntry.

Sorry about repeatedly forgetting this!

Upon further thought, I removed this struct, because we only use it in one place.


src/core/ext/filters/load_reporting/server_load_reporting_filter.cc, line 95 at r6 (raw file):

Previously, markdroth (Mark D. Roth) wrote…

Seems weird to have a struct element declared as an array with no size. Maybe make this a pointer instead?

Yeah, this doesn't seem straightforward enough. I have removed the whole struct.


src/cpp/common/channel_filter.h, line 210 at r6 (raw file):

Previously, markdroth (Mark D. Roth) wrote…

This doesn't seem like quite the right API, because the peer string is handled as part of the send_initial_metadata op on the client side and part of the recv_initial_metadata op on the server side. So I think we need to either make different methods for the two or else have this method check both to see which one is non-null.

Done.

I had this method check both.


Comments from Reviewable

@AspirinSJL AspirinSJL force-pushed the load_reporting_filter branch 2 times, most recently from 3656565 to 6fef9fa Compare June 22, 2018 06:35
@grpc-testing
Copy link
Copy Markdown

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

libgrpc.so

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

 -------------- SHRINKING                                                           --------------
  -0.2% -1.50Ki [None]                                                              -56.0Ki  -0.6%
      -0.2% -1.42Ki [Unmapped]                                                          -55.9Ki  -0.6%
      [DEL]     -88 grpc_server_load_reporting_filter                                       -88  [DEL]
  [DEL]   -1015 src/core/ext/filters/load_reporting/server_load_reporting_filter.cc   -1015  [DEL]
      [DEL]    -441 on_initial_md_ready                                                    -441  [DEL]
      [DEL]    -148 lr_start_transport_stream_op_batch                                     -148  [DEL]
      [DEL]    -121 lr_trailing_md_filter                                                  -121  [DEL]
      [DEL]    -119 destroy_call_elem                                                      -119  [DEL]
      [DEL]     -71 init_channel_elem                                                       -71  [DEL]
      [DEL]     -62 [Unmapped]                                                              -62  [DEL]
      [DEL]     -51 init_call_elem                                                          -51  [DEL]
      [DEL]      -2 destroy_channel_elem                                                     -2  [DEL]
  [DEL]    -258 src/core/ext/filters/load_reporting/server_load_reporting_plugin.cc    -258  [DEL]
      [DEL]    -134 maybe_add_server_load_reporting_filter                                 -134  [DEL]
      [DEL]     -71 grpc_load_reporting_enable_arg                                          -71  [DEL]
      [DEL]     -29 grpc_server_load_reporting_plugin_init                                  -29  [DEL]
      [DEL]     -22 [Unmapped]                                                              -22  [DEL]
      [DEL]      -2 grpc_server_load_reporting_plugin_shutdown                               -2  [DEL]
  -5.4%     -19 src/core/plugin_registry/grpc_plugin_registry.cc                        -19  -5.4%
      -5.4%     -19 grpc_register_built_in_plugins                                          -19  -5.4%

  -0.2% -2.77Ki TOTAL                                                               -57.2Ki  -0.6%


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

libgrpc++.so

     VM SIZE              FILE SIZE
 ++++++++++++++ GROWIN ++++++++++++++
  [ = ]       0 [None]    +168  +0.0%

  [ = ]       0 TOTAL     +168  +0.0%



@grpc-testing
Copy link
Copy Markdown

[trickle] No significant performance differences

@AspirinSJL AspirinSJL force-pushed the load_reporting_filter branch from 6fef9fa to 63163e1 Compare June 22, 2018 06:58
@grpc-testing
Copy link
Copy Markdown

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

libgrpc.so

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

 -------------- SHRINKING                                                           --------------
  -0.2% -1.50Ki [None]                                                              -56.0Ki  -0.6%
      -0.2% -1.42Ki [Unmapped]                                                          -55.9Ki  -0.6%
      [DEL]     -88 grpc_server_load_reporting_filter                                       -88  [DEL]
  [DEL]   -1015 src/core/ext/filters/load_reporting/server_load_reporting_filter.cc   -1015  [DEL]
      [DEL]    -441 on_initial_md_ready                                                    -441  [DEL]
      [DEL]    -148 lr_start_transport_stream_op_batch                                     -148  [DEL]
      [DEL]    -121 lr_trailing_md_filter                                                  -121  [DEL]
      [DEL]    -119 destroy_call_elem                                                      -119  [DEL]
      [DEL]     -71 init_channel_elem                                                       -71  [DEL]
      [DEL]     -62 [Unmapped]                                                              -62  [DEL]
      [DEL]     -51 init_call_elem                                                          -51  [DEL]
      [DEL]      -2 destroy_channel_elem                                                     -2  [DEL]
  [DEL]    -258 src/core/ext/filters/load_reporting/server_load_reporting_plugin.cc    -258  [DEL]
      [DEL]    -134 maybe_add_server_load_reporting_filter                                 -134  [DEL]
      [DEL]     -71 grpc_load_reporting_enable_arg                                          -71  [DEL]
      [DEL]     -29 grpc_server_load_reporting_plugin_init                                  -29  [DEL]
      [DEL]     -22 [Unmapped]                                                              -22  [DEL]
      [DEL]      -2 grpc_server_load_reporting_plugin_shutdown                               -2  [DEL]
  -5.4%     -19 src/core/plugin_registry/grpc_plugin_registry.cc                        -19  -5.4%
      -5.4%     -19 grpc_register_built_in_plugins                                          -19  -5.4%

  -0.2% -2.77Ki TOTAL                                                               -57.2Ki  -0.6%


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

libgrpc++.so

     VM SIZE              FILE SIZE
 ++++++++++++++ GROWIN ++++++++++++++
  [ = ]       0 [None]    +168  +0.0%

  [ = ]       0 TOTAL     +168  +0.0%



@grpc-testing
Copy link
Copy Markdown

[trickle] No significant performance differences

@AspirinSJL AspirinSJL force-pushed the load_reporting_filter branch from 63163e1 to 2856420 Compare June 22, 2018 07:54
@grpc-testing
Copy link
Copy Markdown



Missing files (indicates new benchmark): 
    bm_call_create.BM_IsolatedFilter_LoadReportingFilter_SendEmptyMetadata_.counters.new: 10
    bm_call_create.BM_IsolatedFilter_LoadReportingFilter_SendEmptyMetadata_.opt.new: 10
    bm_call_create.BM_IsolatedFilter_LoadReportingFilter_NoOp_.opt.new: 10
    bm_call_create.BM_IsolatedFilter_LoadReportingFilter_NoOp_.counters.new: 10


[microbenchmarks] Performance differences noted:
Benchmark                    cpu_time    real_time
---------------------------  ----------  -----------
BM_MetadataRefUnrefExternal  -5%         -5%

@grpc-testing
Copy link
Copy Markdown

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

libgrpc.so

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

 -------------- SHRINKING                                                           --------------
  -0.2% -1.50Ki [None]                                                              -56.0Ki  -0.6%
      -0.2% -1.42Ki [Unmapped]                                                          -55.9Ki  -0.6%
      [DEL]     -88 grpc_server_load_reporting_filter                                       -88  [DEL]
  [DEL]   -1015 src/core/ext/filters/load_reporting/server_load_reporting_filter.cc   -1015  [DEL]
      [DEL]    -441 on_initial_md_ready                                                    -441  [DEL]
      [DEL]    -148 lr_start_transport_stream_op_batch                                     -148  [DEL]
      [DEL]    -121 lr_trailing_md_filter                                                  -121  [DEL]
      [DEL]    -119 destroy_call_elem                                                      -119  [DEL]
      [DEL]     -71 init_channel_elem                                                       -71  [DEL]
      [DEL]     -62 [Unmapped]                                                              -62  [DEL]
      [DEL]     -51 init_call_elem                                                          -51  [DEL]
      [DEL]      -2 destroy_channel_elem                                                     -2  [DEL]
  [DEL]    -258 src/core/ext/filters/load_reporting/server_load_reporting_plugin.cc    -258  [DEL]
      [DEL]    -134 maybe_add_server_load_reporting_filter                                 -134  [DEL]
      [DEL]     -71 grpc_load_reporting_enable_arg                                          -71  [DEL]
      [DEL]     -29 grpc_server_load_reporting_plugin_init                                  -29  [DEL]
      [DEL]     -22 [Unmapped]                                                              -22  [DEL]
      [DEL]      -2 grpc_server_load_reporting_plugin_shutdown                               -2  [DEL]
  -5.4%     -19 src/core/plugin_registry/grpc_plugin_registry.cc                        -19  -5.4%
      -5.4%     -19 grpc_register_built_in_plugins                                          -19  -5.4%

  -0.2% -2.77Ki TOTAL                                                               -57.2Ki  -0.6%


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

libgrpc++.so

     VM SIZE              FILE SIZE
 ++++++++++++++ GROWIN ++++++++++++++
  [ = ]       0 [None]    +168  +0.0%

  [ = ]       0 TOTAL     +168  +0.0%



@grpc-testing
Copy link
Copy Markdown

[trickle] No significant performance differences

@grpc-testing
Copy link
Copy Markdown



Missing files (indicates new benchmark): 
    bm_call_create.BM_IsolatedFilter_LoadReportingFilter_SendEmptyMetadata_.counters.new: 10
    bm_call_create.BM_IsolatedFilter_LoadReportingFilter_SendEmptyMetadata_.opt.new: 10
    bm_call_create.BM_IsolatedFilter_LoadReportingFilter_NoOp_.opt.new: 10
    bm_call_create.BM_IsolatedFilter_LoadReportingFilter_NoOp_.counters.new: 10


[microbenchmarks] Performance differences noted:
Benchmark                                           cpu_time    real_time
--------------------------------------------------  ----------  -----------
BM_ErrorGetIntFromNoError                           -4%         -4%
BM_HasClearGrpcStatus<ErrorWithGrpcStatus>          -22%        -22%
BM_HasClearGrpcStatus<SimpleError>                  -9%         -9%
BM_HpackParserParseHeader<EmptyBatch, UnrefHeader>  +5%         +5%
BM_MetadataRefUnrefStatic                           +5%         +5%
BM_PumpStreamClientToServer<InProcess>/262144       +7%         +7%

@AspirinSJL AspirinSJL force-pushed the load_reporting_filter branch from 2856420 to f5f1d57 Compare June 22, 2018 17:01
@grpc-testing
Copy link
Copy Markdown

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

libgrpc.so

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

 -------------- SHRINKING                                                           --------------
  -0.2% -1.50Ki [None]                                                              -56.0Ki  -0.6%
      -0.2% -1.42Ki [Unmapped]                                                          -55.9Ki  -0.6%
      [DEL]     -88 grpc_server_load_reporting_filter                                       -88  [DEL]
  [DEL]   -1015 src/core/ext/filters/load_reporting/server_load_reporting_filter.cc   -1015  [DEL]
      [DEL]    -441 on_initial_md_ready                                                    -441  [DEL]
      [DEL]    -148 lr_start_transport_stream_op_batch                                     -148  [DEL]
      [DEL]    -121 lr_trailing_md_filter                                                  -121  [DEL]
      [DEL]    -119 destroy_call_elem                                                      -119  [DEL]
      [DEL]     -71 init_channel_elem                                                       -71  [DEL]
      [DEL]     -62 [Unmapped]                                                              -62  [DEL]
      [DEL]     -51 init_call_elem                                                          -51  [DEL]
      [DEL]      -2 destroy_channel_elem                                                     -2  [DEL]
  [DEL]    -258 src/core/ext/filters/load_reporting/server_load_reporting_plugin.cc    -258  [DEL]
      [DEL]    -134 maybe_add_server_load_reporting_filter                                 -134  [DEL]
      [DEL]     -71 grpc_load_reporting_enable_arg                                          -71  [DEL]
      [DEL]     -29 grpc_server_load_reporting_plugin_init                                  -29  [DEL]
      [DEL]     -22 [Unmapped]                                                              -22  [DEL]
      [DEL]      -2 grpc_server_load_reporting_plugin_shutdown                               -2  [DEL]
  -5.4%     -19 src/core/plugin_registry/grpc_plugin_registry.cc                        -19  -5.4%
      -5.4%     -19 grpc_register_built_in_plugins                                          -19  -5.4%

  -0.2% -2.77Ki TOTAL                                                               -57.2Ki  -0.6%


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

libgrpc++.so

     VM SIZE              FILE SIZE
 ++++++++++++++ GROWIN ++++++++++++++
  [ = ]       0 [None]    +168  +0.0%

  [ = ]       0 TOTAL     +168  +0.0%



@grpc-testing
Copy link
Copy Markdown

[trickle] No significant performance differences

@grpc-testing
Copy link
Copy Markdown



Missing files (indicates new benchmark): 
    bm_call_create.BM_IsolatedFilter_LoadReportingFilter_SendEmptyMetadata_.counters.new: 10
    bm_call_create.BM_IsolatedFilter_LoadReportingFilter_SendEmptyMetadata_.opt.new: 10
    bm_call_create.BM_IsolatedFilter_LoadReportingFilter_NoOp_.opt.new: 10
    bm_call_create.BM_IsolatedFilter_LoadReportingFilter_NoOp_.counters.new: 10


[microbenchmarks] No significant performance differences

@AspirinSJL
Copy link
Copy Markdown
Contributor Author

I just removed the old load_reporting filter tests for now so that we can merge this PR. We may need to re-enable the Bazel ones after we have a final decision on how to en-able the whole load reporting service in next PR.

grpc_sockaddr* addr = reinterpret_cast<grpc_sockaddr*>(resolved_address.addr);
if (addr->sa_family == GRPC_AF_INET) {
grpc_sockaddr_in* addr4 = reinterpret_cast<grpc_sockaddr_in*>(addr);
gpr_asprintf(client_ip_string, "%08x", grpc_ntohl(addr4->sin_addr.s_addr));
Copy link
Copy Markdown
Contributor Author

@AspirinSJL AspirinSJL Jun 22, 2018

Choose a reason for hiding this comment

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

I added grpc_ntohl here after getting approval.

Looks like Reviewable is keeping all the history.

@AspirinSJL AspirinSJL changed the title WIP: Load reporting filter Load reporting filter Jun 22, 2018
@AspirinSJL
Copy link
Copy Markdown
Contributor Author

Green, of course 😁 .

@AspirinSJL AspirinSJL merged commit f69f49d into grpc:master Jun 22, 2018
@AspirinSJL AspirinSJL deleted the load_reporting_filter branch June 22, 2018 19:57
@AspirinSJL AspirinSJL added release notes: yes Indicates if PR needs to be in release notes lang/c++ release notes: no Indicates if PR should not be in release notes and removed release notes: yes Indicates if PR needs to be in release notes labels Jul 19, 2018
@lock lock bot locked as resolved and limited conversation to collaborators Oct 22, 2018
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

lang/c++ release notes: no Indicates if PR should not be in release notes

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants