hyperium / hyperium/h2

load_hpack takes ~9% of total CPU at high request rates

Open
#883 3 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Rust
Stars
1.6k
Forks
382
Avg merge
20h 23m
Merged PRs (30d)
9

Description

Running an HTTP/2 server at ~1M req/s on ARM64, load_hpack is ~9% of total CPU in our profiles. Feels way too high for header decoding. I looked through the source and I think there's a lot of low-hanging fruit. Happy to send patches.

Image

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by locating the load_hpack entry point in the Rust source and reproduce the reported HTTP/2 workload on ARM64 if the project provides a benchmark or profiling setup. Compare the profile with the header-decoding path and identify measurable hotspots before proposing focused changes. Done means reducing load_hpack's CPU share without changing decoding behavior, with relevant tests or benchmarks passing.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
networking
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
38/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.