Skip to content

CompletionQueue DoThenAsyncNext#13084

Merged
kpayson64 merged 1 commit intogrpc:masterfrom
kpayson64:cq_lambda
Oct 25, 2017
Merged

CompletionQueue DoThenAsyncNext#13084
kpayson64 merged 1 commit intogrpc:masterfrom
kpayson64:cq_lambda

Conversation

@kpayson64
Copy link
Copy Markdown
Contributor

@kpayson64 kpayson64 commented Oct 20, 2017

Adds an experimental function to C++ Completion Queues DoThenAsyncNext. It allows users to pass a lambda to be executed before the AsyncNext. If the lambda triggers a completion event, it is guaranteed to be delivered on the AsyncNext call.

@grpc-testing
Copy link
Copy Markdown

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

libgrpc.so

     VM SIZE                                                FILE SIZE
 ++++++++++++++ GROWING                                  ++++++++++++++
  +0.1%    +368 [None]                                   +1.25Ki  +0.0%
  +6.8%    +464 src/core/lib/surface/completion_queue.cc    +464  +6.8%
      [NEW]    +327 grpc_flush_cq_tls_cache                     +327  [NEW]
      [NEW]     +52 grpc_prepare_cq_tls_cache                    +52  [NEW]
       +14%     +43 [Unmapped]                                   +43   +14%
      +6.5%     +40 cq_end_op_for_next                           +40  +6.5%
      [NEW]      +2 grpc_cq_global_init                           +2  [NEW]

  +0.1%    +832 TOTAL                                    +1.70Ki  +0.0%


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

libgrpc++.so

     VM SIZE                                                          FILE SIZE
 ++++++++++++++ GROWING                                            ++++++++++++++
  +0.2%    +390 [None]                                             +2.94Ki  +0.1%
   +69%    +210 src/cpp/common/completion_queue_cc.cc                 +210   +69%
      [NEW]    +208 grpc::CompletionQueue::DoThenAsyncNextInternal        +208  [NEW]
       +11%      +2 [Unmapped]                                              +2   +11%

  +0.2%    +600 TOTAL                                              +3.15Ki  +0.1%



@grpc-testing
Copy link
Copy Markdown

[trickle] No significant performance differences

Copy link
Copy Markdown
Member

@ctiller ctiller Oct 20, 2017

Choose a reason for hiding this comment

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

can we do:

template <typename T, typename F>
NextStatus DoThenAsyncNext(F&& f, /* ... rest of args ... */) {
  // ... rest of code
}

and avoid unnecessarily instantiating a std::function (since this is not for free, and lambda's pretty much are)

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

similarly here, and hoist the implementation into the header

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Can we make a small class to handle the TLS cache here... constructor calls grpc_prepare... destructor does the cleanup (and could be in a cc file out of line since it's sufficiently complex)

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Variable names should be lower case

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

== nullptr would be better here (for new code)

@grpc-testing
Copy link
Copy Markdown

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

libgrpc.so

     VM SIZE                                                FILE SIZE
 ++++++++++++++ GROWING                                  ++++++++++++++
  +0.1%    +336 [None]                                   +1.24Ki  +0.0%
  +6.8%    +464 src/core/lib/surface/completion_queue.cc    +464  +6.8%
      [NEW]    +327 grpc_flush_cq_tls_cache                     +327  [NEW]
      [NEW]     +52 grpc_prepare_cq_tls_cache                    +52  [NEW]
       +14%     +43 [Unmapped]                                   +43   +14%
      +6.5%     +40 cq_end_op_for_next                           +40  +6.5%
      [NEW]      +2 grpc_cq_global_init                           +2  [NEW]

  +0.1%    +800 TOTAL                                    +1.70Ki  +0.0%


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

libgrpc++.so

     VM SIZE                                                                   FILE SIZE
 ++++++++++++++ GROWING                                                     ++++++++++++++
  +0.7% +1.40Ki [None]                                                      +28.4Ki  +0.6%
      +0.7% +1.29Ki [Unmapped]                                                  +28.3Ki  +0.6%
      [NEW]     +40 typeinfo for grpc::CompletionQueueTLSCache                      +40  [NEW]
      [NEW]     +33 typeinfo name for grpc::CompletionQueueTLSCache                 +33  [NEW]
      [NEW]     +32 vtable for grpc::CompletionQueueTLSCache                        +32  [NEW]
      +4.7%      +8 [None]                                                            0  [ = ]
  [NEW]    +606 src/cpp/common/completion_queue_tls_cache_cc.cc                +606  [NEW]
      [NEW]    +162 grpc::CompletionQueueTLSCache::~CompletionQueueTLSCache        +162  [NEW]
      [NEW]    +136 grpc::CompletionQueueTLSCache::CompletionQueueTLSCache         +136  [NEW]
      [NEW]    +128 [ELF Headers]                                                  +128  [NEW]
      [NEW]    +126 grpc::CompletionQueueTLSCache::Flush                           +126  [NEW]
      [NEW]     +36 [Unmapped]                                                      +36  [NEW]
      [NEW]     +18 grpc::CompletionQueueTLSCache::~CompletionQueueTLSCache         +18  [NEW]

 -------------- SHRINKING                                                   --------------
 -22.8%    -128 src/cpp/common/resource_quota_cc.cc                            -128 -22.8%
      [DEL]    -128 [ELF Headers]                                                  -128  [DEL]

  +0.6% +1.87Ki TOTAL                                                       +28.8Ki  +0.6%



@kpayson64
Copy link
Copy Markdown
Contributor Author

Addressed comments from ctiller's review.

@grpc-testing
Copy link
Copy Markdown

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

libgrpc.so

     VM SIZE                                                FILE SIZE
 ++++++++++++++ GROWING                                  ++++++++++++++
  +0.1%    +336 [None]                                   +1.24Ki  +0.0%
  +6.8%    +464 src/core/lib/surface/completion_queue.cc    +464  +6.8%
      [NEW]    +327 grpc_flush_cq_tls_cache                     +327  [NEW]
      [NEW]     +52 grpc_prepare_cq_tls_cache                    +52  [NEW]
       +14%     +43 [Unmapped]                                   +43   +14%
      +6.5%     +40 cq_end_op_for_next                           +40  +6.5%
      [NEW]      +2 grpc_cq_global_init                           +2  [NEW]

  +0.1%    +800 TOTAL                                    +1.70Ki  +0.0%


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

libgrpc++.so

     VM SIZE                                                                   FILE SIZE
 ++++++++++++++ GROWING                                                     ++++++++++++++
  +0.7% +1.40Ki [None]                                                      +28.4Ki  +0.6%
      +0.7% +1.29Ki [Unmapped]                                                  +28.3Ki  +0.6%
      [NEW]     +40 typeinfo for grpc::CompletionQueueTLSCache                      +40  [NEW]
      [NEW]     +33 typeinfo name for grpc::CompletionQueueTLSCache                 +33  [NEW]
      [NEW]     +32 vtable for grpc::CompletionQueueTLSCache                        +32  [NEW]
      +4.7%      +8 [None]                                                            0  [ = ]
  [NEW]    +606 src/cpp/common/completion_queue_tls_cache_cc.cc                +606  [NEW]
      [NEW]    +162 grpc::CompletionQueueTLSCache::~CompletionQueueTLSCache        +162  [NEW]
      [NEW]    +136 grpc::CompletionQueueTLSCache::CompletionQueueTLSCache         +136  [NEW]
      [NEW]    +128 [ELF Headers]                                                  +128  [NEW]
      [NEW]    +126 grpc::CompletionQueueTLSCache::Flush                           +126  [NEW]
      [NEW]     +36 [Unmapped]                                                      +36  [NEW]
      [NEW]     +18 grpc::CompletionQueueTLSCache::~CompletionQueueTLSCache         +18  [NEW]

 -------------- SHRINKING                                                   --------------
 -22.8%    -128 src/cpp/common/resource_quota_cc.cc                            -128 -22.8%
      [DEL]    -128 [ELF Headers]                                                  -128  [DEL]

  +0.6% +1.87Ki TOTAL                                                       +28.8Ki  +0.6%



@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

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

F&&

(we want to be able to pass l- and r- values here)

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Maybe make this a private member class of CompletionQueue (public names are forever)... If we need to we can promote later

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

F&& change should allow this to be passed to DoThen directly, which would be preferable

@kpayson64
Copy link
Copy Markdown
Contributor Author

Addressed feedback/added unit tests.

@grpc-testing
Copy link
Copy Markdown

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

libgrpc.so

     VM SIZE                                                FILE SIZE
 ++++++++++++++ GROWING                                  ++++++++++++++
  +0.1%    +336 [None]                                   +1.24Ki  +0.0%
  +6.8%    +464 src/core/lib/surface/completion_queue.cc    +464  +6.8%
      [NEW]    +327 grpc_flush_cq_tls_cache                     +327  [NEW]
      [NEW]     +52 grpc_prepare_cq_tls_cache                    +52  [NEW]
       +14%     +43 [Unmapped]                                   +43   +14%
      +6.5%     +40 cq_end_op_for_next                           +40  +6.5%
      [NEW]      +2 grpc_cq_global_init                           +2  [NEW]

  +0.1%    +800 TOTAL                                    +1.70Ki  +0.0%


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

libgrpc++.so

     VM SIZE                                                                                    FILE SIZE
 ++++++++++++++ GROWING                                                                      ++++++++++++++
  +0.3%    +745 [None]                                                                       +1.99Ki  +0.0%
   +68%    +207 src/cpp/common/completion_queue_cc.cc                                           +207   +68%
      [NEW]    +125 grpc::CompletionQueue::CompletionQueueTLSCache::Flush                           +125  [NEW]
      [NEW]     +55 grpc::CompletionQueue::CompletionQueueTLSCache::~CompletionQueueTLSCache         +55  [NEW]
      [NEW]     +16 grpc::CompletionQueue::CompletionQueueTLSCache::CompletionQueueTLSCache          +16  [NEW]
       +58%     +11 [Unmapped]                                                                       +11   +58%

  +0.3%    +952 TOTAL                                                                        +2.19Ki  +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                                  ++++++++++++++
  +0.1%    +368 [None]                                   +1.24Ki  +0.0%
  +6.8%    +464 src/core/lib/surface/completion_queue.cc    +464  +6.8%
      [NEW]    +327 grpc_flush_cq_tls_cache                     +327  [NEW]
      [NEW]     +52 grpc_prepare_cq_tls_cache                    +52  [NEW]
       +14%     +43 [Unmapped]                                   +43   +14%
      +6.5%     +40 cq_end_op_for_next                           +40  +6.5%
      [NEW]      +2 grpc_cq_global_init                           +2  [NEW]

  +0.1%    +832 TOTAL                                    +1.70Ki  +0.0%


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

libgrpc++.so

     VM SIZE                                                                                    FILE SIZE
 ++++++++++++++ GROWING                                                                      ++++++++++++++
  +0.3%    +745 [None]                                                                       +1.99Ki  +0.0%
   +68%    +207 src/cpp/common/completion_queue_cc.cc                                           +207   +68%
      [NEW]    +125 grpc::CompletionQueue::CompletionQueueTLSCache::Flush                           +125  [NEW]
      [NEW]     +55 grpc::CompletionQueue::CompletionQueueTLSCache::~CompletionQueueTLSCache         +55  [NEW]
      [NEW]     +16 grpc::CompletionQueue::CompletionQueueTLSCache::CompletionQueueTLSCache          +16  [NEW]
       +58%     +11 [Unmapped]                                                                       +11   +58%

  +0.3%    +952 TOTAL                                                                        +2.19Ki  +0.0%



@grpc-testing
Copy link
Copy Markdown

[trickle] No significant performance differences

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

grpc_cq_tls_cache_prepare to be more consistent with naming throughout the core API (object name first, then action verb). Additionally, since this is API, I would suggest not using "tls" because of abbreviation-ambiguity. (Note that C++ style guide doesn't like abbreviations.) Please call it grpc_cq_thread_local_cache or grpc_thread_local_cq or something like that

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Additionally, even though these are experimental, please document the parameters and return values (more important for flush than prepare)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Ditto of above

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Please add a comment above indicating what is the purpose of these TLS (implementation of cq thread-local cache, etc)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Since the cache implementation here is essentially a single element in a single CQ, these variable names are misleading. Can you call it g_cached_event and g_cached_cq or something like that? I would also add a comment saying that in the current implementation, only 1 event for 1 CQ is ever cached at a thread, to make it clear that this is the current cache characteristic. This is quite fine for the use case, but the name "cache" suggests the possibility of more than that (which is fine from an API perspectiv, since the current API does not preclude that in the unlikely event that it is ever desired in the future.)

@vjpai
Copy link
Copy Markdown
Contributor

vjpai commented Oct 24, 2017

I've requested changes, but they're mostly cosmetic.

@kpayson64
Copy link
Copy Markdown
Contributor Author

Addressed comments
@sreecha This is the CQ change.

@grpc-testing
Copy link
Copy Markdown

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

libgrpc.so

     VM SIZE                                                          FILE SIZE
 ++++++++++++++ GROWING                                            ++++++++++++++
  +0.1%    +432 [None]                                             +1.27Ki  +0.0%
  +6.8%    +464 src/core/lib/surface/completion_queue.cc              +464  +6.8%
      [NEW]    +327 grpc_completion_queue_thread_local_cache_flush        +327  [NEW]
      [NEW]     +52 grpc_completion_queue_thread_local_cache_init          +52  [NEW]
       +14%     +43 [Unmapped]                                             +43   +14%
      +6.5%     +40 cq_end_op_for_next                                     +40  +6.5%
      [NEW]      +2 grpc_cq_global_init                                     +2  [NEW]

  +0.1%    +896 TOTAL                                              +1.72Ki  +0.0%


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

libgrpc++.so

     VM SIZE                                                                                    FILE SIZE
 ++++++++++++++ GROWING                                                                      ++++++++++++++
  +0.4%    +809 [None]                                                                       +2.22Ki  +0.0%
   +68%    +207 src/cpp/common/completion_queue_cc.cc                                           +207   +68%
      [NEW]    +125 grpc::CompletionQueue::CompletionQueueTLSCache::Flush                           +125  [NEW]
      [NEW]     +55 grpc::CompletionQueue::CompletionQueueTLSCache::~CompletionQueueTLSCache         +55  [NEW]
      [NEW]     +16 grpc::CompletionQueue::CompletionQueueTLSCache::CompletionQueueTLSCache          +16  [NEW]
       +58%     +11 [Unmapped]                                                                       +11   +58%

  +0.3%   +1016 TOTAL                                                                        +2.42Ki  +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                                            ++++++++++++++
  +0.1%    +432 [None]                                             +1.27Ki  +0.0%
  +6.8%    +464 src/core/lib/surface/completion_queue.cc              +464  +6.8%
      [NEW]    +327 grpc_completion_queue_thread_local_cache_flush        +327  [NEW]
      [NEW]     +52 grpc_completion_queue_thread_local_cache_init          +52  [NEW]
       +14%     +43 [Unmapped]                                             +43   +14%
      +6.5%     +40 cq_end_op_for_next                                     +40  +6.5%
      [NEW]      +2 grpc_cq_global_init                                     +2  [NEW]

  +0.1%    +896 TOTAL                                              +1.72Ki  +0.0%


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

libgrpc++.so

     VM SIZE                                                                                    FILE SIZE
 ++++++++++++++ GROWING                                                                      ++++++++++++++
  +0.4%    +809 [None]                                                                       +2.22Ki  +0.0%
   +68%    +207 src/cpp/common/completion_queue_cc.cc                                           +207   +68%
      [NEW]    +125 grpc::CompletionQueue::CompletionQueueTLSCache::Flush                           +125  [NEW]
      [NEW]     +55 grpc::CompletionQueue::CompletionQueueTLSCache::~CompletionQueueTLSCache         +55  [NEW]
      [NEW]     +16 grpc::CompletionQueue::CompletionQueueTLSCache::CompletionQueueTLSCache          +16  [NEW]
       +58%     +11 [Unmapped]                                                                       +11   +58%

  +0.3%   +1016 TOTAL                                                                        +2.42Ki  +0.0%



@grpc-testing
Copy link
Copy Markdown

[trickle] No significant performance differences

grpc.def Outdated
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Please rename to grpc_thread_local_completion_queue_cache_init because it is more rhythmic (can be sung to the tune of Supercalifragilisticexpialidocious)

Copy link
Copy Markdown
Contributor

@vjpai vjpai left a comment

Choose a reason for hiding this comment

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

LGTM

@grpc-testing
Copy link
Copy Markdown

Corrupt JSON data (indicates timeout or crash): 
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_MinInProcessCHTTP2_NoOpMutator_NoOpMutator__32k_2_0.counters.new: 2
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_InProcessCHTTP2_NoOpMutator_NoOpMutator__64_2_0.counters.old: 4
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_MinInProcessCHTTP2_NoOpMutator_NoOpMutator__0_2_0.opt.old: 5
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_MinInProcessCHTTP2_NoOpMutator_NoOpMutator__64_2_0.opt.old: 3
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_MinInProcessCHTTP2_NoOpMutator_NoOpMutator__0_2_0.counters.old: 1
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_InProcessCHTTP2_NoOpMutator_NoOpMutator__512_2_0.counters.new: 2
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_MinInProcessCHTTP2_NoOpMutator_NoOpMutator__1_2_0.opt.new: 4
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_InProcessCHTTP2_NoOpMutator_NoOpMutator__64_2_0.counters.new: 2
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_MinInProcessCHTTP2_NoOpMutator_NoOpMutator__1_2_0.counters.new: 2
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_MinInProcessCHTTP2_NoOpMutator_NoOpMutator__64_2_0.counters.old: 3
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_MinInProcessCHTTP2_NoOpMutator_NoOpMutator__32k_2_0.opt.new: 1
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_InProcessCHTTP2_NoOpMutator_NoOpMutator__8_2_0.counters.old: 1
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_MinInProcessCHTTP2_NoOpMutator_NoOpMutator__1_2_0.opt.old: 1
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_MinInProcessCHTTP2_NoOpMutator_NoOpMutator__4k_2_0.counters.old: 2
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_MinInProcessCHTTP2_NoOpMutator_NoOpMutator__8_2_0.counters.old: 2
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_MinInProcessCHTTP2_NoOpMutator_NoOpMutator__4k_2_0.opt.new: 2
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_InProcessCHTTP2_NoOpMutator_NoOpMutator__4k_2_0.counters.new: 1
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_InProcessCHTTP2_NoOpMutator_NoOpMutator__8_2_0.opt.new: 2
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_MinInProcessCHTTP2_NoOpMutator_NoOpMutator__512_2_0.opt.old: 2
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_InProcessCHTTP2_NoOpMutator_NoOpMutator__512_2_0.opt.old: 2
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_InProcessCHTTP2_NoOpMutator_NoOpMutator__32k_2_0.counters.new: 1
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_InProcessCHTTP2_NoOpMutator_NoOpMutator__1_2_0.opt.new: 2
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_InProcessCHTTP2_NoOpMutator_NoOpMutator__0_2_0.counters.old: 2
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_InProcessCHTTP2_NoOpMutator_NoOpMutator__64_2_0.opt.new: 2
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_InProcessCHTTP2_NoOpMutator_NoOpMutator__2M_1_0.counters.new: 1
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_MinInProcessCHTTP2_NoOpMutator_NoOpMutator__8_2_0.opt.old: 3
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_MinInProcessCHTTP2_NoOpMutator_NoOpMutator__1_2_0.counters.old: 2
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_InProcessCHTTP2_NoOpMutator_NoOpMutator__4k_2_0.opt.old: 2
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_MinInProcessCHTTP2_NoOpMutator_NoOpMutator__0_2_0.counters.new: 1
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_InProcessCHTTP2_NoOpMutator_NoOpMutator__1_2_0.counters.old: 1
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_InProcessCHTTP2_NoOpMutator_NoOpMutator__0_2_0.opt.new: 2
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_MinInProcessCHTTP2_NoOpMutator_NoOpMutator__32k_2_0.counters.old: 2
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_MinInProcessCHTTP2_NoOpMutator_NoOpMutator__8_2_0.counters.new: 2
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_MinInProcessCHTTP2_NoOpMutator_NoOpMutator__64_2_0.opt.new: 2
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_MinInProcessCHTTP2_NoOpMutator_NoOpMutator__512_2_0.counters.old: 1
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_InProcessCHTTP2_NoOpMutator_NoOpMutator__512_2_0.opt.new: 1
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_InProcessCHTTP2_NoOpMutator_NoOpMutator__8_2_0.counters.new: 1
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_InProcessCHTTP2_NoOpMutator_NoOpMutator__1_2_0.opt.old: 1
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_InProcessCHTTP2_NoOpMutator_NoOpMutator__256k_1_0.counters.new: 1
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_InProcessCHTTP2_NoOpMutator_NoOpMutator__32k_2_0.opt.new: 1
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_MinInProcessCHTTP2_NoOpMutator_NoOpMutator__32k_2_0.opt.old: 2
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_InProcessCHTTP2_NoOpMutator_NoOpMutator__0_2_0.counters.new: 3
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_MinInProcessCHTTP2_NoOpMutator_NoOpMutator__4k_2_0.counters.new: 5
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_InProcessCHTTP2_NoOpMutator_NoOpMutator__8_2_0.opt.old: 1
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_InProcessCHTTP2_NoOpMutator_NoOpMutator__4k_2_0.counters.old: 4
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_InProcessCHTTP2_NoOpMutator_NoOpMutator__1_2_0.counters.new: 1
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_MinInProcessCHTTP2_NoOpMutator_NoOpMutator__512_2_0.opt.new: 3
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_InProcessCHTTP2_NoOpMutator_NoOpMutator__64_2_0.opt.old: 2
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_MinInProcessCHTTP2_NoOpMutator_NoOpMutator__64_2_0.counters.new: 1
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_MinInProcessCHTTP2_NoOpMutator_NoOpMutator__4k_2_0.opt.old: 1
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_MinInProcessCHTTP2_NoOpMutator_NoOpMutator__8_2_0.opt.new: 1
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_InProcessCHTTP2_NoOpMutator_NoOpMutator__512_2_0.counters.old: 2
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_MinInProcessCHTTP2_NoOpMutator_NoOpMutator__0_2_0.opt.new: 1


[microbenchmarks] No significant performance differences

@grpc-testing
Copy link
Copy Markdown

Corrupt JSON data (indicates timeout or crash): 
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_InProcessCHTTP2_NoOpMutator_NoOpMutator__8_2_0.opt.old: 4
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_InProcessCHTTP2_NoOpMutator_NoOpMutator__32k_2_0.opt.old: 3
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_MinInProcessCHTTP2_NoOpMutator_NoOpMutator__0_2_0.opt.old: 2
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_MinInProcessCHTTP2_NoOpMutator_NoOpMutator__0_2_0.counters.old: 2
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_MinInProcessCHTTP2_NoOpMutator_NoOpMutator__512_2_0.counters.new: 4
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_InProcessCHTTP2_NoOpMutator_NoOpMutator__512_2_0.counters.new: 3
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_MinInProcessCHTTP2_NoOpMutator_NoOpMutator__1_2_0.opt.new: 4
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_MinInProcessCHTTP2_NoOpMutator_NoOpMutator__512_2_0.opt.old: 2
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_MinInProcessCHTTP2_NoOpMutator_NoOpMutator__1_2_0.counters.new: 1
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_MinInProcessCHTTP2_NoOpMutator_NoOpMutator__64_2_0.counters.old: 1
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_MinInProcessCHTTP2_NoOpMutator_NoOpMutator__32k_2_0.opt.new: 2
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_InProcessCHTTP2_NoOpMutator_NoOpMutator__8_2_0.counters.old: 4
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_MinInProcessCHTTP2_NoOpMutator_NoOpMutator__1_2_0.opt.old: 3
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_MinInProcessCHTTP2_NoOpMutator_NoOpMutator__4k_2_0.counters.old: 5
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_MinInProcessCHTTP2_NoOpMutator_NoOpMutator__8_2_0.counters.old: 3
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_InProcessCHTTP2_NoOpMutator_NoOpMutator__4k_2_0.opt.new: 3
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_MinInProcessCHTTP2_NoOpMutator_NoOpMutator__4k_2_0.opt.new: 1
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_InProcessCHTTP2_NoOpMutator_NoOpMutator__4k_2_0.counters.new: 4
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_InProcessCHTTP2_NoOpMutator_NoOpMutator__64_2_0.counters.new: 1
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_InProcessCHTTP2_NoOpMutator_NoOpMutator__512_2_0.opt.old: 1
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_InProcessCHTTP2_NoOpMutator_NoOpMutator__32k_2_0.counters.new: 1
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_InProcessCHTTP2_NoOpMutator_NoOpMutator__1_2_0.opt.new: 2
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_InProcessCHTTP2_NoOpMutator_NoOpMutator__0_2_0.counters.old: 3
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_InProcessCHTTP2_NoOpMutator_NoOpMutator__64_2_0.opt.new: 1
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_MinInProcessCHTTP2_NoOpMutator_NoOpMutator__8_2_0.opt.old: 5
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_MinInProcessCHTTP2_NoOpMutator_NoOpMutator__512_2_0.opt.new: 2
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_MinInProcessCHTTP2_NoOpMutator_NoOpMutator__1_2_0.counters.old: 3
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_InProcessCHTTP2_NoOpMutator_NoOpMutator__4k_2_0.opt.old: 2
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_MinInProcessCHTTP2_NoOpMutator_NoOpMutator__0_2_0.counters.new: 3
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_InProcessCHTTP2_NoOpMutator_NoOpMutator__1_2_0.counters.old: 1
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_MinInProcessCHTTP2_NoOpMutator_NoOpMutator__32k_2_0.counters.old: 1
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_MinInProcessCHTTP2_NoOpMutator_NoOpMutator__8_2_0.counters.new: 3
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_MinInProcessCHTTP2_NoOpMutator_NoOpMutator__64_2_0.opt.new: 4
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_MinInProcessCHTTP2_NoOpMutator_NoOpMutator__512_2_0.counters.old: 3
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_InProcessCHTTP2_NoOpMutator_NoOpMutator__512_2_0.opt.new: 5
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_InProcessCHTTP2_NoOpMutator_NoOpMutator__8_2_0.counters.new: 2
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_InProcessCHTTP2_NoOpMutator_NoOpMutator__1_2_0.opt.old: 1
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_MinInProcessCHTTP2_NoOpMutator_NoOpMutator__4k_2_0.counters.new: 1
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_InProcessCHTTP2_NoOpMutator_NoOpMutator__32k_2_0.opt.new: 2
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_InProcessCHTTP2_NoOpMutator_NoOpMutator__0_2_0.opt.new: 5
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_InProcessCHTTP2_NoOpMutator_NoOpMutator__64_2_0.counters.old: 3
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_InProcessCHTTP2_NoOpMutator_NoOpMutator__4k_2_0.counters.old: 3
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_InProcessCHTTP2_NoOpMutator_NoOpMutator__0_2_0.opt.old: 3
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_InProcessCHTTP2_NoOpMutator_NoOpMutator__64_2_0.opt.old: 1
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_MinInProcessCHTTP2_NoOpMutator_NoOpMutator__64_2_0.counters.new: 3
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_MinInProcessCHTTP2_NoOpMutator_NoOpMutator__4k_2_0.opt.old: 1
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_MinInProcessCHTTP2_NoOpMutator_NoOpMutator__8_2_0.opt.new: 2


[microbenchmarks] No significant performance differences

@kpayson64
Copy link
Copy Markdown
Contributor Author

#12932
#12960
#12886
#12510

@grpc-testing
Copy link
Copy Markdown

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

libgrpc.so

     VM SIZE                                                          FILE SIZE
 ++++++++++++++ GROWING                                            ++++++++++++++
  +0.1%    +432 [None]                                             +1.27Ki  +0.0%
  +6.8%    +464 src/core/lib/surface/completion_queue.cc              +464  +6.8%
      [NEW]    +327 grpc_completion_queue_thread_local_cache_flush        +327  [NEW]
      [NEW]     +52 grpc_completion_queue_thread_local_cache_init          +52  [NEW]
       +14%     +43 [Unmapped]                                             +43   +14%
      +6.5%     +40 cq_end_op_for_next                                     +40  +6.5%
      [NEW]      +2 grpc_cq_global_init                                     +2  [NEW]

  +0.1%    +896 TOTAL                                              +1.72Ki  +0.0%


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

libgrpc++.so

     VM SIZE                                                                                    FILE SIZE
 ++++++++++++++ GROWING                                                                      ++++++++++++++
  +0.4%    +809 [None]                                                                       +2.22Ki  +0.0%
   +68%    +207 src/cpp/common/completion_queue_cc.cc                                           +207   +68%
      [NEW]    +125 grpc::CompletionQueue::CompletionQueueTLSCache::Flush                           +125  [NEW]
      [NEW]     +55 grpc::CompletionQueue::CompletionQueueTLSCache::~CompletionQueueTLSCache         +55  [NEW]
      [NEW]     +16 grpc::CompletionQueue::CompletionQueueTLSCache::CompletionQueueTLSCache          +16  [NEW]
       +58%     +11 [Unmapped]                                                                       +11   +58%

  +0.3%   +1016 TOTAL                                                                        +2.42Ki  +0.0%



@kpayson64 kpayson64 changed the title Cq lambda CompletionQueue DoThenAsyncNext Oct 25, 2017
@grpc-testing
Copy link
Copy Markdown

[trickle] No significant performance differences

@kpayson64 kpayson64 dismissed ctiller’s stale review October 25, 2017 17:27

OOO, addressed requested changes

@kpayson64 kpayson64 merged commit 1bf7207 into grpc:master Oct 25, 2017
@grpc-testing
Copy link
Copy Markdown

Corrupt JSON data (indicates timeout or crash): 
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_InProcessCHTTP2_NoOpMutator_NoOpMutator__0_2_0.counters.old: 1
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_InProcessCHTTP2_NoOpMutator_NoOpMutator__8_2_0.opt.old: 2
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_InProcessCHTTP2_NoOpMutator_NoOpMutator__32k_2_0.opt.old: 2
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_MinInProcessCHTTP2_NoOpMutator_NoOpMutator__0_2_0.opt.old: 1
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_MinInProcessCHTTP2_NoOpMutator_NoOpMutator__64_2_0.opt.old: 2
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_MinInProcessCHTTP2_NoOpMutator_NoOpMutator__0_2_0.counters.old: 1
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_InProcessCHTTP2_NoOpMutator_NoOpMutator__512_2_0.counters.new: 2
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_InProcessCHTTP2_NoOpMutator_NoOpMutator__64_2_0.counters.new: 1
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_MinInProcessCHTTP2_NoOpMutator_NoOpMutator__1_2_0.counters.new: 3
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_MinInProcessCHTTP2_NoOpMutator_NoOpMutator__64_2_0.counters.old: 3
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_MinInProcessCHTTP2_NoOpMutator_NoOpMutator__32k_2_0.opt.new: 4
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_InProcessCHTTP2_NoOpMutator_NoOpMutator__8_2_0.counters.old: 1
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_MinInProcessCHTTP2_NoOpMutator_NoOpMutator__1_2_0.opt.old: 1
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_MinInProcessCHTTP2_NoOpMutator_NoOpMutator__4k_2_0.counters.old: 4
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_MinInProcessCHTTP2_NoOpMutator_NoOpMutator__8_2_0.counters.old: 2
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_InProcessCHTTP2_NoOpMutator_NoOpMutator__4k_2_0.opt.new: 5
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_MinInProcessCHTTP2_NoOpMutator_NoOpMutator__4k_2_0.opt.new: 2
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_InProcessCHTTP2_NoOpMutator_NoOpMutator__4k_2_0.counters.new: 2
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_MinInProcessCHTTP2_NoOpMutator_NoOpMutator__512_2_0.opt.old: 1
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_InProcessCHTTP2_NoOpMutator_NoOpMutator__512_2_0.opt.old: 1
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_InProcessCHTTP2_NoOpMutator_NoOpMutator__32k_2_0.counters.new: 1
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_InProcessCHTTP2_NoOpMutator_NoOpMutator__1_2_0.opt.new: 1
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_MinInProcessCHTTP2_NoOpMutator_NoOpMutator__32k_2_0.counters.new: 2
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_InProcessCHTTP2_NoOpMutator_NoOpMutator__64_2_0.opt.new: 3
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_InProcessCHTTP2_NoOpMutator_NoOpMutator__64_2_0.opt.old: 2
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_InProcessCHTTP2_NoOpMutator_NoOpMutator__8_2_0.counters.new: 1
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_MinInProcessCHTTP2_NoOpMutator_NoOpMutator__8_2_0.opt.old: 4
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_InProcessCHTTP2_NoOpMutator_NoOpMutator__4k_2_0.opt.old: 3
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_MinInProcessCHTTP2_NoOpMutator_NoOpMutator__0_2_0.counters.new: 1
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_MinInProcessCHTTP2_NoOpMutator_NoOpMutator__512_2_0.opt.new: 1
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_MinInProcessCHTTP2_NoOpMutator_NoOpMutator__0_2_0.opt.new: 1
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_MinInProcessCHTTP2_NoOpMutator_NoOpMutator__64_2_0.counters.new: 1
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_MinInProcessCHTTP2_NoOpMutator_NoOpMutator__8_2_0.counters.new: 3
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_MinInProcessCHTTP2_NoOpMutator_NoOpMutator__64_2_0.opt.new: 3
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_MinInProcessCHTTP2_NoOpMutator_NoOpMutator__512_2_0.counters.old: 2
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_InProcessCHTTP2_NoOpMutator_NoOpMutator__512_2_0.opt.new: 4
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_InProcessCHTTP2_NoOpMutator_NoOpMutator__32k_2_0.counters.old: 2
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_MinInProcessCHTTP2_NoOpMutator_NoOpMutator__1_2_0.counters.old: 2
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_MinInProcessCHTTP2_NoOpMutator_NoOpMutator__32k_2_0.opt.old: 1
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_InProcessCHTTP2_NoOpMutator_NoOpMutator__0_2_0.counters.new: 3
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_InProcessCHTTP2_NoOpMutator_NoOpMutator__0_2_0.opt.new: 2
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_InProcessCHTTP2_NoOpMutator_NoOpMutator__64_2_0.counters.old: 4
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_InProcessCHTTP2_NoOpMutator_NoOpMutator__4k_2_0.counters.old: 2
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_InProcessCHTTP2_NoOpMutator_NoOpMutator__1_2_0.counters.new: 1
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_InProcessCHTTP2_NoOpMutator_NoOpMutator__1_2_0.counters.old: 2
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_InProcessCHTTP2_NoOpMutator_NoOpMutator__0_2_0.opt.old: 1
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_MinInProcessCHTTP2_NoOpMutator_NoOpMutator__32k_2_0.counters.old: 2
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_MinInProcessCHTTP2_NoOpMutator_NoOpMutator__4k_2_0.opt.old: 4
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_MinInProcessCHTTP2_NoOpMutator_NoOpMutator__8_2_0.opt.new: 2
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_InProcessCHTTP2_NoOpMutator_NoOpMutator__512_2_0.counters.old: 2


[microbenchmarks] No significant performance differences

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants