Vijay Pai
e8f78e7a5d
Merge pull request #20644 from vjpai/remove_warn_17
...
Remove unused parameter warnings (17 of 20)
2019-10-18 10:32:48 -07:00
Vijay Pai
82e185399d
clang-format
2019-10-17 09:08:21 -07:00
Vijay Pai
0cab2084e6
clang-format
2019-10-17 09:08:04 -07:00
Vijay Pai
6ca827a008
Remove unused parameter warning (18 of 20)
2019-10-17 08:52:05 -07:00
Vijay Pai
406b70629a
Remove unused parameter warning (17 of 20)
2019-10-17 08:52:00 -07:00
Yash Tibrewal
0a57e9cc69
Fix bm chttp2 transport
2019-10-02 16:14:43 -07:00
Soheil Hassas Yeganeh
c9376b4e0b
Use cycle clock instead of clock monotonic to measure call latency.
...
This removes two more getttime syscalls from the hot path, when cycle
clock is enabled.
2019-09-09 10:37:48 -04:00
Arjun Roy
0b06676c9e
hpack encoder optimizations.
...
Removed some cycles and branches from hpack_enc for CH2.
Specifically:
1. Pushed certain metadata key/value length checks to
prepare_application_metadata() in src/core/lib/surface/call.cc.
This means that rather than check all key/val lengths for all metadata, we only
do so for custom added user metadata. Inside CH2, we change the length checks to
debug checks so we can catch if core/filter metadata fails to pass the check.
2. Changed various asserts to debug asserts when able.
3. Refactored some of the header emission code to remove duplicated code.
4. Un-inlined some logging methods.
This results in somewhat faster hpack_encoder performance:
BM_HpackEncoderInitDestroy
222ns ± 0% 221ns ± 0% -0.29% (p=0.000 n=34+34)
BM_HpackEncoderEncodeDeadline
[framing_bytes/iter:9 header_bytes/iter:6 ] 135ns ± 1%
124ns ± 0% -8.05% (p=0.000 n=39+38)
BM_HpackEncoderEncodeHeader<EmptyBatch>/0/16384
[framing_bytes/iter:9 header_bytes/iter:0 ] 34.2ns ± 0%
34.2ns ± 0% -0.01% (p=0.014 n=34+38)
BM_HpackEncoderEncodeHeader<EmptyBatch>/1/16384
[framing_bytes/iter:9 header_bytes/iter:0 ] 34.2ns ± 0%
34.2ns ± 0% -0.04% (p=0.004 n=34+37)
BM_HpackEncoderEncodeHeader<SingleStaticElem>/0/16384
[framing_bytes/iter:9 header_bytes/iter:1 ] 47.5ns ± 0%
45.9ns ± 0% -3.28% (p=0.000 n=28+38)
BM_HpackEncoderEncodeHeader<SingleInternedKeyElem>/0/16384
[framing_bytes/iter:9 header_bytes/iter:6 ] 77.0ns ± 1%
68.3ns ± 1% -11.33% (p=0.000 n=39+40)
BM_HpackEncoderEncodeHeader<SingleInternedElem>/0/16384
[framing_bytes/iter:9 header_bytes/iter:1 ] 47.7ns ± 1%
45.5ns ± 0% -4.63% (p=0.000 n=39+33)
BM_HpackEncoderEncodeHeader<SingleInternedBinaryElem<1, false>>/0/16384
[framing_bytes/iter:9 header_bytes/iter:1 ] 47.2ns ± 0%
45.3ns ± 0% -3.96% (p=0.000 n=33+34)
BM_HpackEncoderEncodeHeader<SingleInternedBinaryElem<3, false>>/0/16384
[framing_bytes/iter:9 header_bytes/iter:1 ] 47.7ns ± 0%
45.6ns ± 0% -4.54% (p=0.000 n=38+40)
BM_HpackEncoderEncodeHeader<SingleInternedBinaryElem<10, false>>/0/16384
[framing_bytes/iter:9 header_bytes/iter:1 ] 47.7ns ± 0%
45.5ns ± 0% -4.63% (p=0.000 n=39+32)
BM_HpackEncoderEncodeHeader<SingleInternedBinaryElem<31, false>>/0/16384
[framing_bytes/iter:9 header_bytes/iter:1 ] 47.8ns ± 0%
45.6ns ± 1% -4.59% (p=0.000 n=38+39)
BM_HpackEncoderEncodeHeader<SingleInternedBinaryElem<100, false>>/0/16384
[framing_bytes/iter:9 header_bytes/iter:1 ] 47.8ns ± 0%
45.5ns ± 0% -4.64% (p=0.000 n=39+36)
BM_HpackEncoderEncodeHeader<SingleInternedBinaryElem<1, true>>/0/16384
[framing_bytes/iter:9 header_bytes/iter:1 ] 47.3ns ± 0%
45.3ns ± 0% -4.09% (p=0.000 n=38+36)
BM_HpackEncoderEncodeHeader<SingleInternedBinaryElem<3, true>>/0/16384
[framing_bytes/iter:9 header_bytes/iter:1 ] 47.8ns ± 1%
45.6ns ± 0% -4.71% (p=0.000 n=37+40)
BM_HpackEncoderEncodeHeader<SingleInternedBinaryElem<10, true>>/0/16384
[framing_bytes/iter:9 header_bytes/iter:1 ] 47.7ns ± 0%
45.5ns ± 0% -4.66% (p=0.000 n=39+32)
BM_HpackEncoderEncodeHeader<SingleInternedBinaryElem<31, true>>/0/16384
[framing_bytes/iter:9 header_bytes/iter:1 ] 47.8ns ± 1%
45.6ns ± 1% -4.62% (p=0.000 n=37+39)
BM_HpackEncoderEncodeHeader<SingleInternedBinaryElem<100, true>>/0/16384
[framing_bytes/iter:9 header_bytes/iter:1 ] 47.7ns ± 0%
45.5ns ± 0% -4.67% (p=0.000 n=38+32)
BM_HpackEncoderEncodeHeader<SingleNonInternedElem>/0/16384
[framing_bytes/iter:9 header_bytes/iter:9 ] 80.5ns ± 1%
74.7ns ± 0% -7.16% (p=0.000 n=38+35)
BM_HpackEncoderEncodeHeader<SingleNonInternedBinaryElem<1, false>>/0/16384
[framing_bytes/iter:9 header_bytes/iter:12 ] 105ns ± 1%
99ns ± 0% -5.91% (p=0.000 n=38+34)
BM_HpackEncoderEncodeHeader<SingleNonInternedBinaryElem<3, false>>/0/16384
[framing_bytes/iter:9 header_bytes/iter:14 ] 111ns ± 1%
106ns ± 1% -4.86% (p=0.020 n=39+2)
BM_HpackEncoderEncodeHeader<SingleNonInternedBinaryElem<10, false>>/0/16384
[framing_bytes/iter:9 header_bytes/iter:23 ] 135ns ± 0%
130ns ± 0% -3.45% (p=0.020 n=35+2)
BM_HpackEncoderEncodeHeader<SingleNonInternedBinaryElem<31, false>>/0/16384
[framing_bytes/iter:9 header_bytes/iter:46 ] 225ns ± 1%
223ns ± 0% -0.91% (p=0.003 n=37+2)
BM_HpackEncoderEncodeHeader<SingleNonInternedBinaryElem<100, false>>/0/16384
[framing_bytes/iter:9 header_bytes/iter:120 ] 467ns ± 0%
472ns ± 0% +1.09% (p=0.003 n=38+2)
BM_HpackEncoderEncodeHeader<SingleNonInternedBinaryElem<1, true>>/0/16384
[framing_bytes/iter:9 header_bytes/iter:12 ] 81.6ns ± 1%
74.8ns ± 0% -8.40% (p=0.000 n=37+33)
BM_HpackEncoderEncodeHeader<SingleNonInternedBinaryElem<3, true>>/0/16384
[framing_bytes/iter:9 header_bytes/iter:14 ] 82.0ns ± 1%
74.8ns ± 0% -8.80% (p=0.000 n=37+32)
BM_HpackEncoderEncodeHeader<SingleNonInternedBinaryElem<10, true>>/0/16384
[framing_bytes/iter:9 header_bytes/iter:21 ] 82.1ns ± 1%
74.9ns ± 0% -8.86% (p=0.000 n=35+34)
BM_HpackEncoderEncodeHeader<SingleNonInternedBinaryElem<31, true>>/0/16384
[framing_bytes/iter:9 header_bytes/iter:42 ] 97.6ns ± 2%
91.8ns ± 0% -5.95% (p=0.000 n=35+27)
BM_HpackEncoderEncodeHeader<SingleNonInternedBinaryElem<100, true>>/0/16384
[framing_bytes/iter:9 header_bytes/iter:111 ] 97.2ns ± 1%
91.2ns ± 2% -6.19% (p=0.000 n=37+38)
BM_HpackEncoderEncodeHeader<SingleNonInternedElem>/0/1
[framing_bytes/iter:54 header_bytes/iter:9 ] 230ns ± 0%
221ns ± 0% -3.91% (p=0.000 n=38+37)
BM_HpackEncoderEncodeHeader<MoreRepresentativeClientInitialMetadata>/0/16384
[framing_bytes/iter:9 header_bytes/iter:16 ] 206ns ± 2%
170ns ± 1% -17.51% (p=0.000 n=39+39)
BM_HpackEncoderEncodeHeader<RepresentativeServerInitialMetadata>/0/16384
[framing_bytes/iter:9 header_bytes/iter:3 ] 66.4ns ± 2%
62.5ns ± 1% -5.85% (p=0.000 n=34+39)
BM_HpackEncoderEncodeHeader<RepresentativeServerTrailingMetadata>/1/16384
[framing_bytes/iter:9 header_bytes/iter:1 ] 47.5ns ± 0%
45.9ns ± 1% -3.29% (p=0.000 n=26+38)
2019-09-06 13:43:29 -07:00
Vijay Pai
9bb1247bdb
Merge pull request #16327 from vjpai/keep_running
...
C++ microbenchmarks: update from KeepRunning to range-based for
2019-09-05 11:07:53 -07:00
Arjun Roy
6175294416
Merge pull request #20014 from arjunroy/on_hdr_nobranch
...
s/branch/tail_call/ for CH2 on_hdr().
2019-09-03 12:44:56 -07:00
Hope Casey-Allen
32801fb5eb
Remove build target for microbenchmark
2019-08-29 14:11:05 -07:00
Vijay Pai
1077b3435c
Use range-based for on state rather than state.KeepRunning when possible
2019-08-29 11:27:00 -07:00
Arjun Roy
b46e3668d3
s/branch/tail_call/ for CH2 on_hdr().
...
on_hdr() checks if a void-return function pointer is null before jumping to it.
If it is null, it returns an error; else it executes that function and returns
success.
This change converts the void-returning function to one that returns a
grpc_error* and thus saves a branch in on_hdr() (since we're branching once by
following the function pointer anyways, we're effectively coalescing these two
branches).
2019-08-28 13:06:11 -07:00
Hope Casey-Allen
6dfe27ab08
Fix race in bm_chttp2_transport
2019-08-28 10:07:38 -07:00
Mark D. Roth
0bdeca47b6
Merge pull request #19038 from markdroth/lb_policy_create_channel_api_improvement
...
Remove CreateChannel() method from LB helper API.
2019-08-27 10:54:52 -07:00
Hope Casey-Allen
59564ebd96
Fix warnings to unblock gcc8 support
2019-08-20 16:02:53 -07:00
Mark D. Roth
a23e7ab188
Merge remote-tracking branch 'upstream/master' into lb_policy_create_channel_api_improvement
2019-08-20 07:58:38 -07:00
Arjun Roy
557446a11e
Added specializations for grpc_mdelem_create.
...
In several cases, we create grpc mdelem structures using known-static
metadata inputs. Furthermore, in several cases we create a slice on
the heap (e.g. grpc_slice_from_copied_buffer) where we know we are
transferring refcount ownership. In several cases, then, we can:
1) Avoid unnecessary ref/unref operations that are no-ops (for static
slices) or superfluous (if we're transferring ownership).
2) Avoid unnecessarily comprehensive calls to grpc_slice_eq (since
they'd only be called with static or interned slice arguments,
which by construction would have equal refcounts if they were
in fact equal.
3) Avoid unnecessary checks to see if a slice is interned (when we
know that they are).
To avoid polluting the internal API, we introduce the notion of
strongly-typed grpc_slice objects. We draw a distinction between
Internal (interned and static-storage) slices and Extern (inline and
non-statically allocated). We introduce overloads to
grpc_mdelem_create() and grpc_mdelem_from_slices() for the fastpath
cases identified above based on these slice types.
From the programmer's point of view, though, nothing changes - they
need only use grpc_mdelem_create() and grpc_mdelem_from_slices() as
before, and the appropriate fastpath will be picked based on type
inference. If no special knowledge exists for the slice type (i.e. we
pass in generic grpc_slice objects), the slowpath method will still
always return correct behaviour.
This is good for:
- Roughly 1-3% reduction in CPU time for several unary/streaming
ping pong fullstack microbenchmarks.
- Reduction of about 15-20% in CPU time for some hpack parser
microbenchmarks.
- 10-12% reduction of CPU time for metadata microbenchmarks involving
interned slice comparisons.
2019-07-30 17:07:44 -07:00
yunjiaw26
f14f1dd61d
Merge pull request #19695 from yunjiaw26/bm_threadpool
...
Add threadpool benchmark and build files
2019-07-29 18:38:22 -07:00
Yunjia Wang
8318e578db
SpikyLoad: construct outside
2019-07-29 10:52:32 -07:00
Yunjia Wang
c3c24d089d
Use Template
2019-07-29 10:30:09 -07:00
Yunjia Wang
d87b5285ca
Fix comment
2019-07-24 13:33:24 -07:00
Yunjia Wang
efd6946d21
Reformat
2019-07-23 15:35:50 -07:00
Yunjia Wang
9242fe122d
AddSelf more scenarios
2019-07-23 09:47:26 -07:00
Mark D. Roth
46f706c99b
Revert "Merge pull request #19686 from gnossen/revert_breakage"
...
This reverts commit 1f2398b0d5 , reversing
changes made to 99169d811c .
2019-07-23 07:50:27 -07:00
Yunjia Wang
8278d3e6a5
Resolving comments
2019-07-22 17:24:09 -07:00
Yunjia Wang
847faf407f
Removes unused variable error
2019-07-19 12:10:52 -07:00
Yunjia Wang
85314b3fcc
Re-format
2019-07-19 10:49:35 -07:00
Yunjia Wang
c6bc2b1875
Add threadpool benchmark and build files
2019-07-19 10:23:22 -07:00
Richard Belleville
63b4f3d819
Revert "Merge pull request #19673 from markdroth/channel_grpc_init"
...
This reverts commit 4e21980716 , reversing
changes made to 62b8a783fa .
2019-07-18 13:00:24 -07:00
Mark D. Roth
8cc5b8f680
Defer grpc shutdown until after channel destruction.
2019-07-17 16:35:14 -07:00
Arjun Roy
b1d73a01f1
Removed duplicate static table from hpack table. Removed an or instruction for
...
every usage of static grpc metadata. Inlined hpack table lookups for static
metadata.
This leads to faster hpack parser creation:
BM_HpackParserInitDestroy 5.32µs ± 1% 0.06µs ± 1% -98.91% (p=0.000 n=18+19)
And slightly faster parsing:
BM_HpackParserParseHeader<RepresentativeClientInitialMetadata, OnInitialHeader>
456ns ± 1% 435ns ± 1% -4.74% (p=0.000 n=18+19)
BM_HpackParserParseHeader<MoreRepresentativeClientInitialMetadata,
OnInitialHeader>
1.06µs ± 2% 1.04µs ± 2% -1.82% (p=0.000 n=19+20)
It also yields a slight (0.5 - 1.0 microsecond) reduction in CPU time for
fullstack unary pingpong:
BM_UnaryPingPong<TCP, NoOpMutator, NoOpMutator>/0/512
[polls/iter:3.0001 ] 23.9µs ± 2%
23.0µs ± 1% -3.63% (p=0.002 n=6+6)
BM_UnaryPingPong<TCP, NoOpMutator, NoOpMutator>/0/32768
[polls/iter:3.00015 ] 35.1µs ± 1%
34.2µs ± 1% -2.57% (p=0.036 n=5+3)
BM_UnaryPingPong<MinTCP, NoOpMutator, NoOpMutator>/8/0
[polls/iter:3.00011 ] 21.7µs ± 3%
21.2µs ± 2% -2.44% (p=0.017 n=6+5)
2019-07-15 15:39:31 -07:00
Yash Tibrewal
56a0153f16
Heap allocate the stream object for other benchmark cases too
2019-06-14 14:44:49 -07:00
Yash Tibrewal
cceca10a8a
Fix data race, heap use-after-free issue in bm_chttp2_transport
2019-06-13 17:05:51 -07:00
Mark D. Roth
4f3a55b73d
Merge remote-tracking branch 'upstream/master' into lb_policy_create_channel_api_improvement
2019-06-05 13:56:06 -07:00
Mark D. Roth
0f5834b88d
Merge remote-tracking branch 'upstream/master' into lb_policy_create_channel_api_improvement
2019-05-29 15:40:24 -07:00
Karthik Ravi Shankar
196b0aa3a3
Revert "Revert "Start supporting a callback-based RPC under lock""
2019-05-29 13:15:47 -07:00
Karthik Ravi Shankar
b790c24e5c
Revert "Start supporting a callback-based RPC under lock"
2019-05-29 11:20:36 -07:00
Mark D. Roth
477ebef532
Remove CreateChannel() method from LB helper API.
2019-05-28 14:18:15 -07:00
Karthik Ravi Shankar
b18faa6c95
Fix tsan error
2019-05-23 20:08:45 -07:00
Karthik Ravi Shankar
d2c8eb94c9
Fix microbenchmark failures
2019-05-23 18:09:12 -07:00
Karthik Ravi Shankar
3f05ac9584
Merge branch 'master' into callback-rpc-lock
2019-05-22 17:39:08 -07:00
Karthik Ravi Shankar
e1f62278e3
Fix clang error
2019-05-22 13:53:10 -07:00
Karthik Ravi Shankar
4f7f561564
Add synchronization to bm test
...
- since we made the callback run on another thread, add synchronization
in bm tests as well
2019-05-22 10:42:50 -07:00
Karthik Ravi Shankar
40210d3b8a
Move Channel to grpc_impl
2019-05-17 09:12:33 -07:00
Karthik Ravi Shankar
772a74aced
Revert changes to Channel
2019-05-15 14:24:17 -07:00
Na-Na Pang
a02c76dfb9
Cancel predefine number of streaming
2019-05-13 13:29:06 -07:00
Na-Na Pang
87d75d2a88
Add explicit and fix error
2019-05-10 11:23:24 -07:00
Na-Na Pang
7a464a3bc9
Merge remote-tracking branch 'upstream/master'
2019-05-10 11:16:14 -07:00
Karthik Ravi Shankar
476f7cd81f
Merge pull request #18730 from karthikravis/grpc_namespace_channel_new
...
Fold Channel into grpc_impl from grpc namespace
2019-05-09 14:09:21 -07:00
Na-Na Pang
a2daa4ff08
Clean format'
2019-05-09 12:29:05 -07:00
Na-Na Pang
1ea651aee3
Add assertion
2019-05-09 12:22:55 -07:00
Na-Na Pang
9b50fbcaac
Solve conflict
2019-05-08 18:50:06 -07:00
Na-Na Pang
762e58b574
Change client context allocation
2019-05-08 17:34:27 -07:00
Na-Na Pang
070902b871
Merge bm_callback_cq to bm_cq
2019-05-08 15:51:58 -07:00
Na-Na Pang
3fc702510f
Reuse reactor to send new RPC
2019-05-08 10:15:43 -07:00
Na-Na Pang
2d5a9750a0
Manually add echo.proto to pass Portability build test
2019-05-06 16:20:59 -07:00
Na-Na Pang
1ba5f5c701
Modify build file
2019-05-06 14:55:00 -07:00
Na-Na Pang
32e10e618a
address the reference arguments
2019-05-06 10:41:37 -07:00
Na-Na Pang
714e13b426
Delete log
2019-05-06 09:25:46 -07:00
Na-Na Pang
c905f76a5b
Clang format
2019-05-06 09:18:29 -07:00
Na-Na Pang
4198c4fcc6
Merge remote-tracking branch 'upstream/master'
2019-05-03 10:41:12 -07:00
Na-Na Pang
2787dedd70
Modify dependency of callback_test_service
2019-05-03 10:40:49 -07:00
Na-Na Pang
927c2f2c61
Change format
2019-05-02 17:24:54 -07:00
Na-Na Pang
5748665bc5
Add callback completion queue and modify callback streaming ping pong
2019-05-02 17:21:55 -07:00
Esun Kim
e18ed03c04
Made gRPC inialized after entering main function in microbenchmarks.
2019-05-02 16:58:37 -07:00
Na-Na Pang
25128d18c1
Modify unary ping pong to send next rpc in callback function
2019-05-02 15:14:44 -07:00
Na-Na Pang
7d3fdec445
Add microbenchmark for callback completion queue
2019-05-01 11:29:28 -07:00
Na-Na Pang
e70d507abe
Changes based on comment
2019-04-30 16:32:31 -07:00
Karthik Ravi Shankar
e3a0c85960
Merge branch 'master' into grpc_namespace_channel_new
2019-04-30 14:30:03 -07:00
Na-Na Pang
b028141f01
Change streaming ping pong args and add comment
2019-04-30 14:24:40 -07:00
Karthik Ravi Shankar
bc09c70799
Merge pull request #18454 from grpc/grpc_namespace_channel_arguments
...
Bring ChannelArguments to grpc_impl from grpc
2019-04-30 10:16:45 -07:00
Na-Na Pang
8bf138d799
Add copyright
2019-04-26 14:29:57 -07:00
Na-Na Pang
57bc124d3f
Merge remote-tracking branch 'upstream/master'
2019-04-26 12:03:01 -07:00
Na-Na Pang
875d2df399
Modify build file
2019-04-26 10:52:21 -07:00
Na-Na Pang
bbd4eb5028
Add microbenchmark for callback unary ping pong and bidistreaming ping pong
2019-04-26 09:52:12 -07:00
Yash Tibrewal
9345b7e276
s/atleast/at\ least
2019-04-25 17:15:30 -07:00
Arjun Roy
8ce42f67b2
Shrink arena size by 40 bytes and add additional
...
alignment options (for cache-alignment).
We shrink by:
1) Removing an unnecessary zone pointer.
2) Replacing gpr_mu (40 bytes when using pthread_mutex_t) with
std::atomic_flag.
We also header-inline the fastpath alloc (ie. when not doing a zone
alloc) and move the malloc() for a zone alloc outside of the mutex
critical zone, which allows us to replace the mutex with a spinlock.
We also cache-align created arenas.
2019-04-24 16:39:03 -07:00
Mark D. Roth
ce3ff86763
Convert call_combiner to C++.
2019-04-23 15:27:06 -07:00
Karthik Ravi Shankar
858b5cca20
Fix clang_format_code.sh issues and move the internal calls to new name
2019-04-23 11:45:11 -07:00
Nicolas "Pixel" Noble
b9a279c030
Resolving ambiguous call to CreateCustomChannel.
2019-04-22 23:53:53 +02:00
Karthik Ravi Shankar
973fa6950e
Fold Channel into grpc_impl from grpc namespace
2019-04-11 12:04:23 -07:00
Karthik Ravi Shankar
dad3f34207
Revert "Revert "Revert "Folding the Channel class into the grpc_impl namespace."""
2019-04-10 12:14:04 -07:00
Karthik Ravi Shankar
9875fabdd4
Merge branch 'master' into revert-18076-revert-17797-channel
2019-04-08 12:55:07 -07:00
Karthik Ravi Shankar
dcc199048f
Merge pull request #18396 from grpc/revert-18392-revert-18223-grpc_namespace_opencensus
...
Revert "Revert "Fold opencensus into grpc_impl namespace""
2019-03-29 10:09:01 -07:00
Bill Feng
c1b03b68da
Merge remote-tracking branch 'upstream/master' into feature/reinstate-rbe-windows
2019-03-28 16:45:41 -07:00
Guantao Liu
872d2787a0
Avoid using grpc_core::Executor when the background poller is available.
...
Instead, run closures in the background poller. This will generally
avoid the thread hop in the gRPC runtime.
2019-03-25 16:19:08 -07:00
Karthik Ravi Shankar
4e0923e802
Fix errors from clang_format_code.sh
2019-03-25 15:49:22 -07:00
Bill Feng
d49cdbd01f
Merge remote-tracking branch 'upstream/master' into feature/reinstate-rbe-windows
2019-03-25 14:09:00 -07:00
Soheil Hassas Yeganeh
a3366c1b7f
Merge pull request #18464 from soheilhy/slice-buffer
...
Introduce grpc_byte_buffer_reader_peek and use it for Protobuf parsing.
2019-03-23 22:42:23 -04:00
Soheil Hassas Yeganeh
1014fe507f
Use const ref for grpc_slice.
...
We are copying the slice on every call creation, which is hurting
ping/pong traffic.
2019-03-22 06:38:33 -04:00
Bill Feng
d93959853f
Enabled Windows Bazel build for cpp tests
2019-03-21 18:00:48 -07:00
Karthik Ravi Shankar
4260fe1147
More fixes
2019-03-21 17:51:28 -07:00
Soheil Hassas Yeganeh
ad1b3e5094
Introduce grpc_byte_buffer_reader_peek and use it for Protobuf parsing.
...
grpc_byte_buffer_reader_next() copies and references the slice. This
is not always necessary since the caller will not use the slice
after destroying the byte buffer.
A prominent example is the protobuf parser, which
calls grpc_byte_buffer_reader_next() and immediately unrefs the slice
after the call. This ref() and unref() calls can be very expensive
in the hot path.
This commit introduces grpc_byte_buffer_reader_peek() which
essentialy return a pointer to the slice in the buffer, i.e.,
no copies, and no refs.
QPS of 1MiB 1 Channel callback benchmark increases by 5%.
More importantly insructions per cycle is increased by 10%.
Also add tests and benchmarks for byte_buffer_reader_peek()
This commit reaplies 509e77a5a3
2019-03-21 06:03:45 -04:00
Karthik Ravi Shankar
2a8f3f79ab
Fix more namespace stuff
2019-03-15 17:08:58 -07:00
Karthik Ravi Shankar
f66b654795
Revert "Revert "Fold opencensus into grpc_impl namespace""
2019-03-15 11:30:23 -07:00
Karthik Ravi Shankar
3b4835d92d
Merge pull request #18392 from grpc/revert-18223-grpc_namespace_opencensus
...
Revert "Fold opencensus into grpc_impl namespace"
2019-03-15 11:27:35 -07:00
Karthik Ravi Shankar
2bf934f97d
Revert "Fold opencensus into grpc_impl namespace"
2019-03-15 10:20:06 -07:00
Jan Tattermusch
cf6a311761
Revert "Windows builds for gRPC C++ tests"
2019-03-15 17:15:20 +01:00
Karthik Ravi Shankar
276c4dc593
Merge pull request #18223 from grpc/grpc_namespace_opencensus
...
Fold opencensus into grpc_impl namespace
2019-03-08 15:45:03 -08:00