diff options
author | Craig Tiller <ctiller@google.com> | 2023-07-11 08:41:15 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-07-11 08:41:15 -0700 |
commit | 4ce51fe45ddd1b4c073fa059bf21a41eaf77d5fe (patch) | |
tree | 5a18104ab6b0afe7f084e7899f21a160432de264 /.gitattributes | |
parent | 69b919ffe405518b93e8e0649c2bd3494b8381f1 (diff) | |
download | grpc-grpc-4ce51fe45ddd1b4c073fa059bf21a41eaf77d5fe.tar.gz |
[hpack] Huffman read optimization (#33269)
In real services most of our time ends up in the `Read1()` function,
which populates one byte into the bit buffer.
Change this to read in as many as possible bytes at a time into that
buffer.
Additionally, generate all possible (to some depth) parser geometries,
and add a benchmark for them. Run that benchmark and select the best
geometry for decoding base64 strings (since this is the main use-case).
(gives about a 30% speed boost parsing base64 then huffman encoded
random binary strings)
---------
Co-authored-by: ctiller <ctiller@users.noreply.github.com>
Diffstat (limited to '.gitattributes')
-rw-r--r-- | .gitattributes | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/.gitattributes b/.gitattributes index c0f914118d..69a9ea748f 100644 --- a/.gitattributes +++ b/.gitattributes @@ -36,3 +36,4 @@ src/core/debug/stats_data.cc linguist-generated=true src/core/experiments/experiments.h linguist-generated=true src/core/experiments/experiments.cc linguist-generated=true bazel/experiments.bzl linguist-generated=true +test/cpp/microbenchmarks/huffman_geometries/** linguist-generated=true
\ No newline at end of file |