Skip to content

Use heuristic to determine how many events to handle per iteration#14430

Merged
kpayson64 merged 1 commit intogrpc:masterfrom
kpayson64:multi_poll_per_call
Feb 15, 2018
Merged

Use heuristic to determine how many events to handle per iteration#14430
kpayson64 merged 1 commit intogrpc:masterfrom
kpayson64:multi_poll_per_call

Conversation

@kpayson64
Copy link
Copy Markdown
Contributor

No description provided.

@grpc-testing
Copy link
Copy Markdown

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

libgrpc.so

     VM SIZE                                              FILE SIZE
 ++++++++++++++ GROWING                                ++++++++++++++
  +0.0%     +32 [None]                                    +600  +0.0%
  +2.1%    +224 src/core/lib/iomgr/ev_epollex_linux.cc    +224  +2.1%
       +41%    +189 pollable_process_events                   +189   +41%
      +0.7%     +14 pollset_work                               +14  +0.7%
      +4.0%     +13 [Unmapped]                                 +13  +4.0%
       +11%      +8 pollset_init                                +8   +11%

  +0.0%    +256 TOTAL                                     +824  +0.0%


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

libgrpc++.so

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

  [ = ]       0        0  [ = ]



@sreecha
Copy link
Copy Markdown
Contributor

sreecha commented Feb 14, 2018

Looks reasonable.
Do you have any data to show any improvements this offers?

@grpc-testing
Copy link
Copy Markdown

[trickle] No significant performance differences

@grpc-testing
Copy link
Copy Markdown

[microbenchmarks] Performance differences noted:
Benchmark                                                           allocs_per_iteration    atm_add_per_iteration    atm_cas_per_iteration    http2_pings_sent_per_iteration    locks_per_iteration    nows_per_iteration
------------------------------------------------------------------  ----------------------  -----------------------  -----------------------  --------------------------------  ---------------------  --------------------
BM_EmptyCore                                                                                +28%
BM_PollEmptyPollset                                                                         +66%
BM_SingleThreadPollOneFd                                                                    +66%
BM_StreamingPingPong<MinTCP, NoOpMutator, NoOpMutator>/0/0                                                                                                                      -17%                   -14%
BM_StreamingPingPong<MinTCP, NoOpMutator, NoOpMutator>/0/1                                                                                                                      -10%                   -11%
BM_StreamingPingPong<MinTCP, NoOpMutator, NoOpMutator>/0/2                                                                                                                      -7%                    -9%
BM_StreamingPingPong<MinTCP, NoOpMutator, NoOpMutator>/1/1                                                                                                                      -10%                   -11%
BM_StreamingPingPong<MinTCP, NoOpMutator, NoOpMutator>/1/2                                                                                                                      -7%                    -9%
BM_StreamingPingPong<MinTCP, NoOpMutator, NoOpMutator>/134217728/1                                                                            +5%
BM_StreamingPingPong<MinTCP, NoOpMutator, NoOpMutator>/2097152/1                                                                                                                -7%                    -8%
BM_StreamingPingPong<MinTCP, NoOpMutator, NoOpMutator>/262144/1                                                                                                                 -9%                    -10%
BM_StreamingPingPong<MinTCP, NoOpMutator, NoOpMutator>/262144/2                                                                                                                 -6%                    -8%
BM_StreamingPingPong<MinTCP, NoOpMutator, NoOpMutator>/32768/1                                                                                                                  -10%                   -11%
BM_StreamingPingPong<MinTCP, NoOpMutator, NoOpMutator>/32768/2                                                                                                                  -7%                    -9%
BM_StreamingPingPong<MinTCP, NoOpMutator, NoOpMutator>/4096/1                                                                                                                   -10%                   -11%
BM_StreamingPingPong<MinTCP, NoOpMutator, NoOpMutator>/4096/2                                                                                                                   -7%                    -9%
BM_StreamingPingPong<MinTCP, NoOpMutator, NoOpMutator>/512/1                                                                                                                    -10%                   -11%
BM_StreamingPingPong<MinTCP, NoOpMutator, NoOpMutator>/512/2                                                                                                                    -7%                    -9%
BM_StreamingPingPong<MinTCP, NoOpMutator, NoOpMutator>/64/1                                                                                                                     -10%                   -11%
BM_StreamingPingPong<MinTCP, NoOpMutator, NoOpMutator>/64/2                                                                                                                     -7%                    -9%
BM_StreamingPingPong<MinTCP, NoOpMutator, NoOpMutator>/8/1                                                                                                                      -10%                   -11%
BM_StreamingPingPong<MinTCP, NoOpMutator, NoOpMutator>/8/2                                                                                                                      -7%                    -9%
BM_StreamingPingPong<TCP, NoOpMutator, NoOpMutator>/0/0                                                                                                                         -17%                   -14%
BM_StreamingPingPong<TCP, NoOpMutator, NoOpMutator>/0/1                                                                                                                         -10%                   -11%
BM_StreamingPingPong<TCP, NoOpMutator, NoOpMutator>/0/2                                                                                                                         -7%                    -9%
BM_StreamingPingPong<TCP, NoOpMutator, NoOpMutator>/1/1                                                                                                                         -10%                   -11%
BM_StreamingPingPong<TCP, NoOpMutator, NoOpMutator>/1/2                                                                                                                         -7%                    -9%
BM_StreamingPingPong<TCP, NoOpMutator, NoOpMutator>/2097152/1                                                                                                                   -6%
BM_StreamingPingPong<TCP, NoOpMutator, NoOpMutator>/262144/1                                                                                                                    -9%                    -10%
BM_StreamingPingPong<TCP, NoOpMutator, NoOpMutator>/262144/2                                                                                                                    -6%                    -8%
BM_StreamingPingPong<TCP, NoOpMutator, NoOpMutator>/32768/1                                                                                                                     -10%                   -11%
BM_StreamingPingPong<TCP, NoOpMutator, NoOpMutator>/32768/2                                                                                                                     -7%                    -9%
BM_StreamingPingPong<TCP, NoOpMutator, NoOpMutator>/4096/1                                                                                                                      -10%                   -11%
BM_StreamingPingPong<TCP, NoOpMutator, NoOpMutator>/4096/2                                                                                                                      -7%                    -9%
BM_StreamingPingPong<TCP, NoOpMutator, NoOpMutator>/512/1                                                                                                                       -10%                   -11%
BM_StreamingPingPong<TCP, NoOpMutator, NoOpMutator>/512/2                                                                                                                       -7%                    -9%
BM_StreamingPingPong<TCP, NoOpMutator, NoOpMutator>/64/1                                                                                                                        -10%                   -11%
BM_StreamingPingPong<TCP, NoOpMutator, NoOpMutator>/64/2                                                                                                                        -7%                    -9%
BM_StreamingPingPong<TCP, NoOpMutator, NoOpMutator>/8/1                                                                                                                         -10%                   -11%
BM_StreamingPingPong<TCP, NoOpMutator, NoOpMutator>/8/2                                                                                                                         -7%                    -9%
BM_StreamingPingPongMsgs<TCP, NoOpMutator, NoOpMutator>/134217728                                                                             +20%
BM_UnaryPingPong<MinTCP, NoOpMutator, NoOpMutator>/0/2097152                                                                                                                    -12%
BM_UnaryPingPong<MinTCP, NoOpMutator, NoOpMutator>/134217728/0      +147%                   +137%                    +142%                                                      +147%
BM_UnaryPingPong<TCP, NoOpMutator, NoOpMutator>/0/2097152                                                                                                                       -7%
BM_UnaryPingPong<TCP, NoOpMutator, NoOpMutator>/2097152/0                                                                                                                       -9%                    -8%

@grpc-testing
Copy link
Copy Markdown

[trickle] No significant performance differences

@kpayson64
Copy link
Copy Markdown
Contributor Author

Posting scores for plaque in this PR for record-keeping:
Before:
Final Score (arithmetic mean): 0.907
Final Score (geometric mean): 0.899

After:
Final Score (arithmetic mean): 0.968
Final Score (geometric mean): 0.962

@kpayson64 kpayson64 merged commit ddd50b9 into grpc:master Feb 15, 2018
@lock lock bot locked as resolved and limited conversation to collaborators Jan 20, 2019
@lock lock bot unassigned sreecha Jan 20, 2019
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants