Arjun Roy
d527c1fbda
Pre-compute static metadata index for hpack_encoder.
...
Originally, hpack_encoder would check if a metadata was static or not by
comparing its pointer to the known static metadata global table and checking if
it was within bounds. This check was performed regardless of if the metadata was
static or not, and is somewhat costly.
Instead, we now pre-compute the static metadata index during code generation
time, and store it with static metadata objects. We read that value only if we
are dealing with a static metadata flag (which we know from the storage type of
the grpc_mdelem).
This yields slightly faster metadata encoding:
BM_HpackEncoderEncodeHeader<EmptyBatch>/0/16384
[framing_bytes/iter:9 header_bytes/iter:0 ] 34.9ns ± 2%
34.2ns ± 1% -2.04% (p=0.000 n=20+20)
BM_HpackEncoderEncodeHeader<EmptyBatch>/1/16384
[framing_bytes/iter:9 header_bytes/iter:0 ] 34.9ns ± 2%
34.2ns ± 1% -2.01% (p=0.000 n=20+19)
BM_HpackEncoderEncodeHeader<SingleStaticElem>/0/16384
[framing_bytes/iter:9 header_bytes/iter:1 ] 50.6ns ± 0%
49.2ns ± 2% -2.74% (p=0.000 n=18+20)
BM_HpackEncoderEncodeHeader<SingleInternedKeyElem>/0/16384
[framing_bytes/iter:9 header_bytes/iter:6 ] 84.7ns ± 1%
83.5ns ± 1% -1.43% (p=0.000 n=20+20)
BM_HpackEncoderEncodeHeader<SingleInternedElem>/0/16384
[framing_bytes/iter:9 header_bytes/iter:1 ] 50.4ns ± 0%
47.9ns ± 0% -4.83% (p=0.000 n=18+17)
BM_HpackEncoderEncodeHeader<SingleInternedBinaryElem<1, false>>/0/16384
[framing_bytes/iter:9 header_bytes/iter:1 ] 51.1ns ± 2%
48.9ns ± 1% -4.32% (p=0.000 n=20+20)
BM_HpackEncoderEncodeHeader<SingleInternedBinaryElem<3, false>>/0/16384
[framing_bytes/iter:9 header_bytes/iter:1 ] 50.8ns ± 2%
48.8ns ± 2% -3.88% (p=0.000 n=19+20)
BM_HpackEncoderEncodeHeader<SingleInternedBinaryElem<10, false>>/0/16384
[framing_bytes/iter:9 header_bytes/iter:1 ] 50.2ns ± 1%
47.9ns ± 0% -4.47% (p=0.000 n=19+16)
BM_HpackEncoderEncodeHeader<SingleInternedBinaryElem<31, false>>/0/16384
[framing_bytes/iter:9 header_bytes/iter:1 ] 50.2ns ± 0%
47.9ns ± 0% -4.46% (p=0.000 n=18+16)
BM_HpackEncoderEncodeHeader<SingleInternedBinaryElem<100, false>>/0/16384
[framing_bytes/iter:9 header_bytes/iter:1 ] 50.2ns ± 0%
47.9ns ± 0% -4.40% (p=0.000 n=19+17)
BM_HpackEncoderEncodeHeader<SingleInternedBinaryElem<1, true>>/0/16384
[framing_bytes/iter:9 header_bytes/iter:1 ] 50.7ns ± 2%
48.8ns ± 2% -3.81% (p=0.000 n=20+20)
BM_HpackEncoderEncodeHeader<SingleInternedBinaryElem<3, true>>/0/16384
[framing_bytes/iter:9 header_bytes/iter:1 ] 50.9ns ± 2%
48.8ns ± 2% -4.05% (p=0.000 n=20+20)
BM_HpackEncoderEncodeHeader<SingleInternedBinaryElem<10, true>>/0/16384
[framing_bytes/iter:9 header_bytes/iter:1 ] 50.1ns ± 0%
48.0ns ± 1% -4.27% (p=0.000 n=17+17)
BM_HpackEncoderEncodeHeader<SingleInternedBinaryElem<31, true>>/0/16384
[framing_bytes/iter:9 header_bytes/iter:1 ] 50.1ns ± 0%
48.0ns ± 1% -4.28% (p=0.000 n=18+17)
BM_HpackEncoderEncodeHeader<SingleInternedBinaryElem<100, true>>/0/16384
[framing_bytes/iter:9 header_bytes/iter:1 ] 50.1ns ± 0%
48.0ns ± 0% -4.33% (p=0.000 n=18+17)
BM_HpackEncoderEncodeHeader<SingleNonInternedElem>/0/16384
[framing_bytes/iter:9 header_bytes/iter:9 ] 91.4ns ± 1%
90.7ns ± 1% -0.79% (p=0.000 n=18+20)
BM_HpackEncoderEncodeHeader<SingleNonInternedBinaryElem<1, false>>/0/16384
[framing_bytes/iter:9 header_bytes/iter:12 ] 116ns ± 1%
116ns ± 1% -0.46% (p=0.002 n=20+20)
BM_HpackEncoderEncodeHeader<SingleNonInternedBinaryElem<3, false>>/0/16384
[framing_bytes/iter:9 header_bytes/iter:14 ] 122ns ± 0%
121ns ± 0% -0.69% (p=0.000 n=20+20)
BM_HpackEncoderEncodeHeader<SingleNonInternedBinaryElem<10, false>>/0/16384
[framing_bytes/iter:9 header_bytes/iter:23 ] 144ns ± 1%
144ns ± 0% -0.23% (p=0.009 n=20+20)
BM_HpackEncoderEncodeHeader<SingleNonInternedBinaryElem<31, false>>/0/16384
[framing_bytes/iter:9 header_bytes/iter:46 ] 232ns ± 0%
232ns ± 1% -0.26% (p=0.021 n=18+19)
BM_HpackEncoderEncodeHeader<SingleNonInternedBinaryElem<1, true>>/0/16384
[framing_bytes/iter:9 header_bytes/iter:12 ] 92.9ns ± 1%
92.0ns ± 1% -0.97% (p=0.000 n=19+19)
BM_HpackEncoderEncodeHeader<SingleNonInternedBinaryElem<3, true>>/0/16384
[framing_bytes/iter:9 header_bytes/iter:14 ] 94.0ns ± 1%
92.6ns ± 1% -1.45% (p=0.000 n=20+19)
BM_HpackEncoderEncodeHeader<SingleNonInternedBinaryElem<10, true>>/0/16384
[framing_bytes/iter:9 header_bytes/iter:21 ] 93.9ns ± 2%
92.8ns ± 1% -1.17% (p=0.001 n=20+19)
BM_HpackEncoderEncodeHeader<SingleNonInternedBinaryElem<100, true>>/0/16384
[framing_bytes/iter:9 header_bytes/iter:111 ] 106ns ± 0%
105ns ± 3% -1.15% (p=0.000 n=18+20)
BM_HpackEncoderEncodeHeader<SingleNonInternedElem>/0/1
[framing_bytes/iter:81 header_bytes/iter:9 ] 355ns ± 1%
354ns ± 0% -0.35% (p=0.015 n=19+20)
BM_HpackEncoderEncodeHeader<RepresentativeClientInitialMetadata>/0/16384
[framing_bytes/iter:9 header_bytes/iter:8.00002 ] 139ns ± 1%
133ns ± 1% -4.46% (p=0.000 n=19+20)
BM_HpackEncoderEncodeHeader<MoreRepresentativeClientInitialMetadata>/0/16384
[framing_bytes/iter:9 header_bytes/iter:16 ] 236ns ± 1%
231ns ± 1% -2.24% (p=0.000 n=20+20)
BM_HpackEncoderEncodeHeader<RepresentativeServerInitialMetadata>/0/16384
[framing_bytes/iter:9 header_bytes/iter:3 ] 73.6ns ± 1%
70.5ns ± 1% -4.14% (p=0.000 n=20+20)
BM_HpackEncoderEncodeHeader<RepresentativeServerTrailingMetadata>/1/16384
[framing_bytes/iter:9 header_bytes/iter:1 ] 50.5ns ± 0%
49.2ns ± 2% -2.60% (p=0.000 n=16+20)
6 years ago
Alexander Polcyn
0d2c622f9e
Fix DNS resolver cooldown
6 years ago
Karthik Ravi Shankar
bddcb6c906
Don't move ServerContext to impl
6 years ago
Stanley Cheung
e92622eb5b
Add PHP back to client_matrix.py
6 years ago
Soheil Hassas Yeganeh
80c177d4c4
Revert "Introduce string_view and use it for gpr_split_host_port."
6 years ago
Muxi Yan
bb7829b87b
Relocate cpu_cost to correct test case
6 years ago
Karthik Ravi Shankar
8b91dc5fd2
Move more of usage to grpc_impl
...
1) Create server_context_impl and completion_queue_impl headers.
2) Move more of usage of ClientContext, ServerContext to grpc_impl
6 years ago
Arjun Roy
bff4dd1b2d
Fast-path for no-error case for grpc_error_get_status.
...
For each client side call, we execute grpc_error_get_status; in the common case
that there is no error, we save roughly 30 instructions and a call to strlen.
6 years ago
Soheil Hassas Yeganeh
ef0f9bf7ec
Introduce string_view and use it for gpr_split_host_port.
6 years ago
Prashant Jaikumar
43628b286f
Update googletest version to v1.8.1
...
Bazel builds of test/cpp/end2end:end2end_test were failing on Mac OS with v1.8.0 due to missing gtest symbols. The issue is not seen in v1.8.1. A WORKSPACE file was added to gtest repo in 1.8.1, so gtest.BUILD can be removed.
6 years ago
Nicolas "Pixel" Noble
1c8894d9c4
Hail mary.
6 years ago
Alex Polcyn
1a0eb8bea6
Also updated fedora 2.2 and 2.3 dockerfiles
6 years ago
Alex Polcyn
7361c440c5
Pin bundler where needed
6 years ago
Alexander Polcyn
30c700fd02
Drop support for ruby < 2.3; update and unskip distrib tests
6 years ago
Alex Polcyn
9c5ed4550a
Also updated fedora 2.2 and 2.3 dockerfiles
6 years ago
Alex Polcyn
cc18abfa54
Pin bundler where needed
6 years ago
Muxi Yan
7eb8bac696
Resolve xcodebuild issue on Mac
6 years ago
Michael Thomsen
9e2bb81512
Roll Dart to 2.3
6 years ago
Alexander Polcyn
9aa48c6d1c
Drop support for ruby < 2.3; update and unskip distrib tests
6 years ago
Alexander Polcyn
621707370a
Skip all ruby distrib tests that use ruby 2.2
6 years ago
Alexander Polcyn
3e843d68d0
Skip all ruby distrib tests that use ruby 2.2
6 years ago
Muxi Yan
8a11a8120a
More run_tests.py script fix
6 years ago
Muxi Yan
8cc3457776
fix tests so that they run
6 years ago
Muxi Yan
ec8777c6aa
Add protobuf pod version sanitizer
6 years ago
Muxi Yan
6a7bbbc1bd
Fix objc tests pull request failures
6 years ago
Esun Kim
ebfd812be1
Regenerate projects
6 years ago
Esun Kim
cd27a36924
Regenerate projects
6 years ago
Yash Tibrewal
4fc02c6bf5
add tests for bad stream IDs
6 years ago
Nicolas "Pixel" Noble
ee6a462f03
Another python fix.
6 years ago
Srini Polavarapu
8c8dc0e3c7
1.21.4 interop for cxx, csharp, php, ruby and python
6 years ago
Yash Tibrewal
e60c43ff3e
Add out of bounds frame tests
6 years ago
Muxi Yan
5a354d79ef
fix cannot find tests
6 years ago
Jan Tattermusch
a3fd28bdbf
fix ubsan build for 0.26
6 years ago
Nicolas "Pixel" Noble
a0dc6f7e4a
More syncup.
6 years ago
Nicolas "Pixel" Noble
46ed7524f9
Bazel version syncup.
6 years ago
Muxi Yan
d8ddd592f9
Rename cfg files and use opt configuration
6 years ago
Muxi Yan
3931c0bcd2
yapf_codes
6 years ago
Muxi Yan
1f1eff115a
Split extra arguments
6 years ago
James Newton-King
4155e9cf05
React to renaming grpc-dotnet sln
6 years ago
Muxi Yan
29c3d43752
Make same change to pull request configs
6 years ago
Muxi Yan
7b239a287e
Move extra args into RUN_TESTS_FLAGS
6 years ago
Richard Belleville
385beb95ce
Yapf
6 years ago
Richard Belleville
eb48acd927
Add copyright header
6 years ago
Richard Belleville
79ffaced7d
Add python 3.8 test
6 years ago
Stanley Cheung
795e31a84b
Re-generate projects
6 years ago
Stanley Cheung
40a914e846
Re-generate projects;
6 years ago
Yash Tibrewal
7994ea53fc
Add detailed unknown frame type tests
6 years ago
Jan Tattermusch
7f72d114df
fix macos interop toprod tests
6 years ago
Jan Tattermusch
ed045828b9
make default service account email configurable
6 years ago
Jan Tattermusch
22daa0de6f
remove unused objc interop tests configs
6 years ago