aboutsummaryrefslogtreecommitdiff
path: root/.gitattributes
diff options
context:
space:
mode:
authorCraig Tiller <ctiller@google.com>2023-07-11 08:41:15 -0700
committerGitHub <noreply@github.com>2023-07-11 08:41:15 -0700
commit4ce51fe45ddd1b4c073fa059bf21a41eaf77d5fe (patch)
tree5a18104ab6b0afe7f084e7899f21a160432de264 /.gitattributes
parent69b919ffe405518b93e8e0649c2bd3494b8381f1 (diff)
downloadgrpc-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--.gitattributes1
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