| Commit message (Collapse) | Author | Age |
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
This is to use `grpc_core::RefCount` to improve performnace.
This commit also replaces explicit C vtables, with C++ vtable
with its own compile time assertions and performance benefits.
It also makes use of `RefCountedPtr` wherever possible.
|
| |
|
| |
|
| |
|
|
|
|
|
| |
Also, this patch removes the *WithTracing variants in favor of the new
API.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
Also, added a TODO to move `grpc_transport` to C++. I believe that's
doable, which would requires significant change in all transports.
|
| |
|
| |
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Using a conditional branch to set a function pointer will prevent the
compiler to inline the function and worse it would jump based on a
register value killing the pipline.
Here is a short example to demonstrate the variants:
https://godbolt.org/z/radfZg
Remove `add_nothing` and add a lambda when necessary to make sure
everything is inlined.
|
| | |
|
| |
| |
| |
| |
| |
| |
| | |
Callers are updated to properly initialize the memory.
This behavior can be overridden using GRPC_ARENA_INIT_STRATEGY
environment variable.
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |\
| | |
| | |
| | | |
channelz-listen-sockets
|
| | | |
|
| | | |
|
| |/ |
|
| |\
| | |
| | | |
Account the memory usage of channel and call by resource quota
|
| |\ \
| | | |
| | | | |
Fix deadlock issue in HTTP2 connector
|
| | |/
| |/| |
|
| | | |
|
| | | |
|
| |\ \
| | |/
| |/| |
Do not pass interested_parties during handshake
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This commit contains a few improvements:
1. Using a consequetive range of [0..4], will allow us to merge all
branches of error_is_special into one comparison.
2. With (1), we can remove the for loops to find entries in
error_status_map with a single O(1) lookup.
3. grpc_error_is_special() code paths should be inlined for ref
and unref to avoid callq for the majority of cases where speical
error is used.
4. grpc_error_get_int() should never accept a nullptr argument to
avoid an expensive branch in the hot path. Callers should all
allocate a dummy int on the stack when calling.
|
| |\ \
| | | |
| | | | |
Avoid unnecessary ref/unref calls to get mdelem from slices.
|
| | | |
| | | |
| | | |
| | | |
| | | | |
Remove grpc_mdelem_from_slices_no_unref() since it's a wrapper
around grpc_mdelem_create().
|
| | |/
| |/| |
|
| |\ \
| | | |
| | | |
| | | |
| | | | |
grpc/revert-16791-revert-16695-pass_pollset_set_tsi_handshaker
Revert "Revert "Create and pass pollset_set to ALTS TSI handshaker""
|
| | | | |
|
| |\ \ \
| | | | |
| | | | | |
Channelz Part 8: Get Server Sockets
|
| | |_|/
| |/| |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
grpc_mdelem_from_slices() unref's the key and value. As a result,
in quite a few cases on the hot path, we first ref slice, so that
grpc_mdelem_from_slices() can unref them.
Add grpc_mdelem_from_slices_no_unref() which does not unref() the
input slices. This cuts 0.5% - 1.0% across app benchmarks.
|