Skip to content

bench: Add benchmarks for full and streaming bodies#1069

Merged
0x676e67 merged 2 commits intomainfrom
bench
Feb 15, 2026
Merged

bench: Add benchmarks for full and streaming bodies#1069
0x676e67 merged 2 commits intomainfrom
bench

Conversation

@0x676e67
Copy link
Owner

Platform

/////////////////  /////////////////    win@Z10
/////////////////  /////////////////    -------
/////////////////  /////////////////    OS: Windows 11 Pro (25H2) x86_64
/////////////////  /////////////////    Kernel: WIN32_NT 10.0.26200.7623
/////////////////  /////////////////    Uptime: 11 hours, 1 min
/////////////////  /////////////////    Packages: 11 (scoop), 22 (choco)
/////////////////  /////////////////    Shell: PowerShell 7.5.4
/////////////////  /////////////////    Display (HKC2401): 2560x1440 @ 1.25x in 24", 180 Hz [External, HDR]
                                        WM: Desktop Window Manager 10.0.26100.7309
/////////////////  /////////////////    WM Theme: Custom - Blue (System: Dark, Apps: Dark)
/////////////////  /////////////////    Theme: Fluent
/////////////////  /////////////////    Icons: This PC, Recycle Bin
/////////////////  /////////////////    Font: Microsoft YaHei UI (12pt) [Caption / Menu / Message / Status]
/////////////////  /////////////////    Cursor: Windows 默认 (32px)
/////////////////  /////////////////    Terminal: Windows Terminal 1.23.13503.0
/////////////////  /////////////////    Terminal Font: MesloLGM Nerd Font (12pt)
/////////////////  /////////////////    CPU: AMD Ryzen 9 9950X (32) @ 5.75 GHz
                                        GPU 1: AMD Radeon(TM) Graphics (1.97 GiB) [Integrated]
                                        GPU 2: NVIDIA GeForce RTX 5070 @ 3.09 GHz (11.66 GiB) [Discrete]
                                        Memory: 19.26 GiB / 93.65 GiB (21%)

HTTP2 Benchmark

Running the bench takes hours—too much of a time sink. I'm going to call it a day on this one for now.

server_single_thread/wreq_http2_multi_thread_concurrent_body_stream_64KB
                        time:   [74.827 ms 80.475 ms 86.259 ms]
server_single_thread/reqwest_http2_multi_thread_concurrent_body_stream_64KB
                        time:   [125.27 ms 139.96 ms 155.03 ms]
Found 2 outliers among 10 measurements (20.00%)
  1 (10.00%) low mild
  1 (10.00%) high mild
Benchmarking server_single_thread/wreq_http2_multi_thread_sequential_body_full_256KB: Warming up for 3.0000 s
Warning: Unable to complete 10 samples in 5.0s. You may wish to increase target time to 26.8s.
server_single_thread/wreq_http2_multi_thread_sequential_body_full_256KB
                        time:   [2.3480 s 2.5507 s 2.7654 s]
Benchmarking server_single_thread/reqwest_http2_multi_thread_sequential_body_full_256KB: Warming up for 3.0000 s
Warning: Unable to complete 10 samples in 5.0s. You may wish to increase target time to 96.5s.
server_single_thread/reqwest_http2_multi_thread_sequential_body_full_256KB
                        time:   [9.0571 s 9.3620 s 9.6873 s]
Benchmarking server_single_thread/wreq_http2_multi_thread_sequential_body_stream_256KB: Warming up for 3.0000 s
Warning: Unable to complete 10 samples in 5.0s. You may wish to increase target time to 12.8s.
server_single_thread/wreq_http2_multi_thread_sequential_body_stream_256KB
                        time:   [1.3411 s 1.4910 s 1.6603 s]
Benchmarking server_single_thread/reqwest_http2_multi_thread_sequential_body_stream_256KB: Warming up for 3.0000 s
Warning: Unable to complete 10 samples in 5.0s. You may wish to increase target time to 126.1s.
server_single_thread/reqwest_http2_multi_thread_sequential_body_stream_256KB
                        time:   [12.390 s 12.633 s 12.888 s]
server_single_thread/wreq_http2_multi_thread_concurrent_body_full_256KB
                        time:   [237.44 ms 260.86 ms 287.21 ms]
Found 1 outliers among 10 measurements (10.00%)
  1 (10.00%) high mild
Benchmarking server_single_thread/reqwest_http2_multi_thread_concurrent_body_full_256KB: Warming up for 3.0000 s
Warning: Unable to complete 10 samples in 5.0s. You may wish to increase target time to 7.8s.
server_single_thread/reqwest_http2_multi_thread_concurrent_body_full_256KB
                        time:   [761.88 ms 844.10 ms 925.44 ms]
server_single_thread/wreq_http2_multi_thread_concurrent_body_stream_256KB
                        time:   [275.33 ms 306.18 ms 342.98 ms]
Found 1 outliers among 10 measurements (10.00%)
  1 (10.00%) high mild
Benchmarking server_single_thread/reqwest_http2_multi_thread_concurrent_body_stream_256KB: Warming up for 3.0000 s
Warning: Unable to complete 10 samples in 5.0s. You may wish to increase target time to 6.5s.
server_single_thread/reqwest_http2_multi_thread_concurrent_body_stream_256KB
                        time:   [582.87 ms 610.54 ms 637.44 ms]
Benchmarking server_single_thread/wreq_http2_multi_thread_sequential_body_full_1024KB: Warming up for 3.0000 s
Warning: Unable to complete 10 samples in 5.0s. You may wish to increase target time to 32.3s.
server_single_thread/wreq_http2_multi_thread_sequential_body_full_1024KB
                        time:   [3.6296 s 3.8012 s 3.9518 s]
Found 1 outliers among 10 measurements (10.00%)
  1 (10.00%) low mild
Benchmarking server_single_thread/reqwest_http2_multi_thread_sequential_body_full_1024KB: Warming up for 3.0000 s
Warning: Unable to complete 10 samples in 5.0s. You may wish to increase target time to 84.5s.
server_single_thread/reqwest_http2_multi_thread_sequential_body_full_1024KB
                        time:   [7.6797 s 8.0870 s 8.4956 s]
Benchmarking server_single_thread/wreq_http2_multi_thread_sequential_body_stream_1024KB: Warming up for 3.0000 s
Warning: Unable to complete 10 samples in 5.0s. You may wish to increase target time to 27.2s.
server_single_thread/wreq_http2_multi_thread_sequential_body_stream_1024KB
                        time:   [2.5739 s 2.7135 s 2.8582 s]
Benchmarking server_single_thread/reqwest_http2_multi_thread_sequential_body_stream_1024KB: Warming up for 3.0000 s
Warning: Unable to complete 10 samples in 5.0s. You may wish to increase target time to 70.4s.
server_single_thread/reqwest_http2_multi_thread_sequential_body_stream_1024KB
                        time:   [7.5239 s 7.7589 s 7.9876 s]
Benchmarking server_single_thread/wreq_http2_multi_thread_concurrent_body_full_1024KB: Warming up for 3.0000 s
Warning: Unable to complete 10 samples in 5.0s. You may wish to increase target time to 8.3s.
server_single_thread/wreq_http2_multi_thread_concurrent_body_full_1024KB
                        time:   [778.26 ms 831.41 ms 880.09 ms]
Found 1 outliers among 10 measurements (10.00%)
  1 (10.00%) low mild
Benchmarking server_single_thread/reqwest_http2_multi_thread_concurrent_body_full_1024KB: Warming up for 3.0000 s
Warning: Unable to complete 10 samples in 5.0s. You may wish to increase target time to 32.9s.
server_single_thread/reqwest_http2_multi_thread_concurrent_body_full_1024KB
                        time:   [2.9763 s 3.1307 s 3.2710 s]
Found 1 outliers among 10 measurements (10.00%)
  1 (10.00%) low mild
Benchmarking server_single_thread/wreq_http2_multi_thread_concurrent_body_stream_1024KB: Warming up for 3.0000 s
Warning: Unable to complete 10 samples in 5.0s. You may wish to increase target time to 12.4s.
server_single_thread/wreq_http2_multi_thread_concurrent_body_stream_1024KB
                        time:   [1.1264 s 1.2134 s 1.3125 s]
Found 1 outliers among 10 measurements (10.00%)
  1 (10.00%) high mild
Benchmarking server_single_thread/reqwest_http2_multi_thread_concurrent_body_stream_1024KB: Warming up for 3.0000 s
Warning: Unable to complete 10 samples in 5.0s. You may wish to increase target time to 26.0s.
server_single_thread/reqwest_http2_multi_thread_concurrent_body_stream_1024KB
                        time:   [2.6232 s 2.7876 s 2.9565 s]
error serving: connection error
Benchmarking server_single_thread/wreq_http2_multi_thread_sequential_body_full_2048KB: Warming up for 3.0000 s
Warning: Unable to complete 10 samples in 5.0s. You may wish to increase target time to 65.7s.
server_single_thread/wreq_http2_multi_thread_sequential_body_full_2048KB
                        time:   [6.0111 s 6.1594 s 6.3230 s]
Found 1 outliers among 10 measurements (10.00%)
  1 (10.00%) high mild
Benchmarking server_single_thread/reqwest_http2_multi_thread_sequential_body_full_2048KB: Warming up for 3.0000 s
Warning: Unable to complete 10 samples in 5.0s. You may wish to increase target time to 145.4s.
server_single_thread/reqwest_http2_multi_thread_sequential_body_full_2048KB
                        time:   [13.368 s 14.036 s 14.684 s]
Found 1 outliers among 10 measurements (10.00%)
  1 (10.00%) low mild
Benchmarking server_single_thread/wreq_http2_multi_thread_sequential_body_stream_2048KB: Warming up for 3.0000 s
Warning: Unable to complete 10 samples in 5.0s. You may wish to increase target time to 33.9s.
server_single_thread/wreq_http2_multi_thread_sequential_body_stream_2048KB
                        time:   [3.1834 s 3.3741 s 3.5589 s]
Benchmarking server_single_thread/reqwest_http2_multi_thread_sequential_body_stream_2048KB: Warming up for 3.0000 s
Warning: Unable to complete 10 samples in 5.0s. You may wish to increase target time to 162.2s.
server_single_thread/reqwest_http2_multi_thread_sequential_body_stream_2048KB
                        time:   [14.898 s 15.439 s 15.916 s]
Benchmarking server_single_thread/wreq_http2_multi_thread_concurrent_body_full_2048KB: Warming up for 3.0000 s
Warning: Unable to complete 10 samples in 5.0s. You may wish to increase target time to 15.3s.
server_single_thread/wreq_http2_multi_thread_concurrent_body_full_2048KB
                        time:   [1.5711 s 1.6719 s 1.7663 s]
Benchmarking server_single_thread/reqwest_http2_multi_thread_concurrent_body_full_2048KB: Warming up for 3.0000 s
Warning: Unable to complete 10 samples in 5.0s. You may wish to increase target time to 70.7s.
server_single_thread/reqwest_http2_multi_thread_concurrent_body_full_2048KB
                        time:   [6.1649 s 6.6277 s 7.0589 s]
Benchmarking server_single_thread/wreq_http2_multi_thread_concurrent_body_stream_2048KB: Warming up for 3.0000 s
Warning: Unable to complete 10 samples in 5.0s. You may wish to increase target time to 21.8s.
server_single_thread/wreq_http2_multi_thread_concurrent_body_stream_2048KB
                        time:   [2.2184 s 2.3132 s 2.4253 s]
Found 2 outliers among 10 measurements (20.00%)
  2 (20.00%) high mild
Benchmarking server_single_thread/reqwest_http2_multi_thread_concurrent_body_stream_2048KB: Warming up for 3.0000 s
Warning: Unable to complete 10 samples in 5.0s. You may wish to increase target time to 48.8s.
server_single_thread/reqwest_http2_multi_thread_concurrent_body_stream_2048KB
                        time:   [5.1596 s 5.4220 s 5.6836 s]
Benchmarking server_single_thread/wreq_http2_multi_thread_sequential_body_full_4096KB: Warming up for 3.0000 s
Warning: Unable to complete 10 samples in 5.0s. You may wish to increase target time to 74.1s.
server_single_thread/wreq_http2_multi_thread_sequential_body_full_4096KB
                        time:   [7.6552 s 7.9673 s 8.2682 s]
Benchmarking server_single_thread/reqwest_http2_multi_thread_sequential_body_full_4096KB: Warming up for 3.0000 s
Warning: Unable to complete 10 samples in 5.0s. You may wish to increase target time to 212.1s.
server_single_thread/reqwest_http2_multi_thread_sequential_body_full_4096KB
                        time:   [20.039 s 20.720 s 21.386 s]
Benchmarking server_single_thread/wreq_http2_multi_thread_sequential_body_stream_4096KB: Warming up for 3.0000 s
Warning: Unable to complete 10 samples in 5.0s. You may wish to increase target time to 51.9s.
server_single_thread/wreq_http2_multi_thread_sequential_body_stream_4096KB
                        time:   [5.2022 s 5.2962 s 5.4111 s]
Found 1 outliers among 10 measurements (10.00%)
  1 (10.00%) high mild
Benchmarking server_single_thread/reqwest_http2_multi_thread_sequential_body_stream_4096KB: Warming up for 3.0000 s
Warning: Unable to complete 10 samples in 5.0s. You may wish to increase target time to 200.5s.
server_single_thread/reqwest_http2_multi_thread_sequential_body_stream_4096KB
                        time:   [19.973 s 20.321 s 20.664 s]
Benchmarking server_single_thread/wreq_http2_multi_thread_concurrent_body_full_4096KB: Warming up for 3.0000 s
Warning: Unable to complete 10 samples in 5.0s. You may wish to increase target time to 32.2s.
server_single_thread/wreq_http2_multi_thread_concurrent_body_full_4096KB
                        time:   [3.1859 s 3.2942 s 3.4223 s]
Benchmarking server_single_thread/reqwest_http2_multi_thread_concurrent_body_full_4096KB: Warming up for 3.0000 s
Warning: Unable to complete 10 samples in 5.0s. You may wish to increase target time to 129.1s.
server_single_thread/reqwest_http2_multi_thread_concurrent_body_full_4096KB
                        time:   [12.571 s 12.966 s 13.369 s]
Benchmarking server_single_thread/wreq_http2_multi_thread_concurrent_body_stream_4096KB: Warming up for 3.0000 s
Warning: Unable to complete 10 samples in 5.0s. You may wish to increase target time to 43.2s.
server_single_thread/wreq_http2_multi_thread_concurrent_body_stream_4096KB
                        time:   [4.4584 s 4.6448 s 4.8428 s]
Found 2 outliers among 10 measurements (20.00%)
  1 (10.00%) low mild
  1 (10.00%) high mild
Benchmarking server_single_thread/reqwest_http2_multi_thread_concurrent_body_stream_4096KB: Warming up for 3.0000 s
Warning: Unable to complete 10 samples in 5.0s. You may wish to increase target time to 103.7s.
server_single_thread/reqwest_http2_multi_thread_concurrent_body_stream_4096KB
                        time:   [10.451 s 10.622 s 10.763 s]
Found 2 outliers among 10 measurements (20.00%)
  1 (10.00%) low severe
  1 (10.00%) high mild

server_multi_thread/wreq_http2_current_thread_sequential_body_full_10KB
                        time:   [44.257 ms 45.425 ms 46.606 ms]
server_multi_thread/reqwest_http2_current_thread_sequential_body_full_10KB
                        time:   [39.287 ms 40.841 ms 42.440 ms]
server_multi_thread/wreq_http2_current_thread_sequential_body_stream_10KB
                        time:   [274.34 ms 310.78 ms 346.57 ms]
Benchmarking server_multi_thread/reqwest_http2_current_thread_sequential_body_stream_10KB: Warming up for 3.0000 s
Warning: Unable to complete 10 samples in 5.0s. You may wish to increase target time to 21.3s.
server_multi_thread/reqwest_http2_current_thread_sequential_body_stream_10KB
                        time:   [2.0290 s 2.1627 s 2.2891 s]
server_multi_thread/wreq_http2_current_thread_concurrent_body_full_10KB
                        time:   [18.571 ms 21.632 ms 25.544 ms]
Found 2 outliers among 10 measurements (20.00%)
  2 (20.00%) high severe
server_multi_thread/reqwest_http2_current_thread_concurrent_body_full_10KB
                        time:   [20.603 ms 21.308 ms 22.004 ms]
server_multi_thread/wreq_http2_current_thread_concurrent_body_stream_10KB
                        time:   [28.760 ms 32.353 ms 37.463 ms]
Found 1 outliers among 10 measurements (10.00%)
  1 (10.00%) high severe
server_multi_thread/reqwest_http2_current_thread_concurrent_body_stream_10KB
                        time:   [41.593 ms 43.892 ms 46.275 ms]
Benchmarking server_multi_thread/wreq_http2_current_thread_sequential_body_full_64KB: Warming up for 3.0000 s
Warning: Unable to complete 10 samples in 5.0s. You may wish to increase target time to 7.8s.
server_multi_thread/wreq_http2_current_thread_sequential_body_full_64KB
                        time:   [511.75 ms 600.68 ms 695.87 ms]
Found 1 outliers among 10 measurements (10.00%)
  1 (10.00%) high mild
Benchmarking server_multi_thread/reqwest_http2_current_thread_sequential_body_full_64KB: Warming up for 3.0000 s
Warning: Unable to complete 10 samples in 5.0s. You may wish to increase target time to 24.4s.
server_multi_thread/reqwest_http2_current_thread_sequential_body_full_64KB
                        time:   [2.1684 s 2.4441 s 2.7141 s]
Benchmarking server_multi_thread/wreq_http2_current_thread_sequential_body_stream_64KB: Warming up for 3.0000 s
Warning: Unable to complete 10 samples in 5.0s. You may wish to increase target time to 7.4s.
server_multi_thread/wreq_http2_current_thread_sequential_body_stream_64KB
                        time:   [803.48 ms 927.92 ms 1.0469 s]
Benchmarking server_multi_thread/reqwest_http2_current_thread_sequential_body_stream_64KB: Warming up for 3.0000 s
Warning: Unable to complete 10 samples in 5.0s. You may wish to increase target time to 61.3s.
server_multi_thread/reqwest_http2_current_thread_sequential_body_stream_64KB
                        time:   [5.9237 s 6.0157 s 6.1068 s]
server_multi_thread/wreq_http2_current_thread_concurrent_body_full_64KB
                        time:   [97.021 ms 107.73 ms 120.81 ms]
Found 1 outliers among 10 measurements (10.00%)
  1 (10.00%) high mild
server_multi_thread/reqwest_http2_current_thread_concurrent_body_full_64KB
                        time:   [112.79 ms 122.39 ms 133.05 ms]
Found 1 outliers among 10 measurements (10.00%)
  1 (10.00%) high mild
server_multi_thread/wreq_http2_current_thread_concurrent_body_stream_64KB
                        time:   [75.832 ms 78.335 ms 81.285 ms]
Found 2 outliers among 10 measurements (20.00%)
  2 (20.00%) high mild
server_multi_thread/reqwest_http2_current_thread_concurrent_body_stream_64KB
                        time:   [94.679 ms 98.759 ms 103.25 ms]
Benchmarking server_multi_thread/wreq_http2_current_thread_sequential_body_full_256KB: Warming up for 3.0000 s
Warning: Unable to complete 10 samples in 5.0s. You may wish to increase target time to 23.5s.
server_multi_thread/wreq_http2_current_thread_sequential_body_full_256KB
                        time:   [2.9173 s 3.1121 s 3.3408 s]
Found 2 outliers among 10 measurements (20.00%)
  1 (10.00%) high mild
  1 (10.00%) high severe
Benchmarking server_multi_thread/reqwest_http2_current_thread_sequential_body_full_256KB: Warming up for 3.0000 s
Warning: Unable to complete 10 samples in 5.0s. You may wish to increase target time to 65.0s.
server_multi_thread/reqwest_http2_current_thread_sequential_body_full_256KB
                        time:   [7.2783 s 7.4161 s 7.5631 s]
Benchmarking server_multi_thread/wreq_http2_current_thread_sequential_body_stream_256KB: Warming up for 3.0000 s
Warning: Unable to complete 10 samples in 5.0s. You may wish to increase target time to 16.6s.
server_multi_thread/wreq_http2_current_thread_sequential_body_stream_256KB
                        time:   [1.2897 s 1.4643 s 1.6390 s]
Benchmarking server_multi_thread/reqwest_http2_current_thread_sequential_body_stream_256KB: Warming up for 3.0000 s
Warning: Unable to complete 10 samples in 5.0s. You may wish to increase target time to 118.3s.
server_multi_thread/reqwest_http2_current_thread_sequential_body_stream_256KB
                        time:   [11.242 s 11.536 s 11.799 s]
Found 1 outliers among 10 measurements (10.00%)
  1 (10.00%) low mild
server_multi_thread/wreq_http2_current_thread_concurrent_body_full_256KB
                        time:   [347.00 ms 373.99 ms 397.86 ms]
server_multi_thread/reqwest_http2_current_thread_concurrent_body_full_256KB
                        time:   [469.72 ms 513.50 ms 555.13 ms]
server_multi_thread/wreq_http2_current_thread_concurrent_body_stream_256KB
                        time:   [351.70 ms 377.15 ms 409.41 ms]
Found 1 outliers among 10 measurements (10.00%)
  1 (10.00%) high mild
server_multi_thread/reqwest_http2_current_thread_concurrent_body_stream_256KB
                        time:   [442.16 ms 467.18 ms 498.76 ms]
Found 1 outliers among 10 measurements (10.00%)
  1 (10.00%) high mild
Benchmarking server_multi_thread/wreq_http2_current_thread_sequential_body_full_1024KB: Warming up for 3.0000 s
Warning: Unable to complete 10 samples in 5.0s. You may wish to increase target time to 28.3s.
server_multi_thread/wreq_http2_current_thread_sequential_body_full_1024KB
                        time:   [2.6229 s 2.7081 s 2.7979 s]
Benchmarking server_multi_thread/reqwest_http2_current_thread_sequential_body_full_1024KB: Warming up for 3.0000 s
Warning: Unable to complete 10 samples in 5.0s. You may wish to increase target time to 36.4s.
server_multi_thread/reqwest_http2_current_thread_sequential_body_full_1024KB
                        time:   [3.5798 s 3.6642 s 3.7646 s]
Found 1 outliers among 10 measurements (10.00%)
  1 (10.00%) high mild
Benchmarking server_multi_thread/wreq_http2_current_thread_sequential_body_stream_1024KB: Warming up for 3.0000 s
Warning: Unable to complete 10 samples in 5.0s. You may wish to increase target time to 48.0s.
server_multi_thread/wreq_http2_current_thread_sequential_body_stream_1024KB
                        time:   [5.2441 s 5.4644 s 5.6860 s]
Benchmarking server_multi_thread/reqwest_http2_current_thread_sequential_body_stream_1024KB: Warming up for 3.0000 s
Warning: Unable to complete 10 samples in 5.0s. You may wish to increase target time to 38.9s.
server_multi_thread/reqwest_http2_current_thread_sequential_body_stream_1024KB
                        time:   [3.6211 s 3.8220 s 3.9950 s]
Benchmarking server_multi_thread/wreq_http2_current_thread_concurrent_body_full_1024KB: Warming up for 3.0000 s
Warning: Unable to complete 10 samples in 5.0s. You may wish to increase target time to 13.0s.
server_multi_thread/wreq_http2_current_thread_concurrent_body_full_1024KB
                        time:   [1.1850 s 1.2793 s 1.3867 s]
Benchmarking server_multi_thread/reqwest_http2_current_thread_concurrent_body_full_1024KB: Warming up for 3.0000 s
Warning: Unable to complete 10 samples in 5.0s. You may wish to increase target time to 21.3s.
server_multi_thread/reqwest_http2_current_thread_concurrent_body_full_1024KB
                        time:   [1.8386 s 1.9785 s 2.1358 s]
Benchmarking server_multi_thread/wreq_http2_current_thread_concurrent_body_stream_1024KB: Warming up for 3.0000 s
Warning: Unable to complete 10 samples in 5.0s. You may wish to increase target time to 13.9s.
server_multi_thread/wreq_http2_current_thread_concurrent_body_stream_1024KB
                        time:   [1.3522 s 1.4656 s 1.6060 s]
Found 2 outliers among 10 measurements (20.00%)
  2 (20.00%) high severe
Benchmarking server_multi_thread/reqwest_http2_current_thread_concurrent_body_stream_1024KB: Warming up for 3.0000 s
Warning: Unable to complete 10 samples in 5.0s. You may wish to increase target time to 17.9s.
server_multi_thread/reqwest_http2_current_thread_concurrent_body_stream_1024KB
                        time:   [1.7249 s 1.7929 s 1.8703 s]
Benchmarking server_multi_thread/wreq_http2_current_thread_sequential_body_full_2048KB: Warming up for 3.0000 s
Warning: Unable to complete 10 samples in 5.0s. You may wish to increase target time to 71.7s.
server_multi_thread/wreq_http2_current_thread_sequential_body_full_2048KB
                        time:   [7.1663 s 7.5298 s 7.9001 s]
Benchmarking server_multi_thread/reqwest_http2_current_thread_sequential_body_full_2048KB: Warming up for 3.0000 s
Warning: Unable to complete 10 samples in 5.0s. You may wish to increase target time to 109.9s.
server_multi_thread/reqwest_http2_current_thread_sequential_body_full_2048KB
                        time:   [10.656 s 10.754 s 10.857 s]
Benchmarking server_multi_thread/wreq_http2_current_thread_sequential_body_stream_2048KB: Warming up for 3.0000 s
Warning: Unable to complete 10 samples in 5.0s. You may wish to increase target time to 76.4s.
server_multi_thread/wreq_http2_current_thread_sequential_body_stream_2048KB
                        time:   [7.4578 s 7.7754 s 8.0923 s]
Benchmarking server_multi_thread/reqwest_http2_current_thread_sequential_body_stream_2048KB: Warming up for 3.0000 s
Warning: Unable to complete 10 samples in 5.0s. You may wish to increase target time to 114.2s.
server_multi_thread/reqwest_http2_current_thread_sequential_body_stream_2048KB
                        time:   [11.064 s 11.309 s 11.561 s]
Benchmarking server_multi_thread/wreq_http2_current_thread_concurrent_body_full_2048KB: Warming up for 3.0000 s
Warning: Unable to complete 10 samples in 5.0s. You may wish to increase target time to 26.1s.
server_multi_thread/wreq_http2_current_thread_concurrent_body_full_2048KB
                        time:   [2.4980 s 2.6516 s 2.8154 s]
Benchmarking server_multi_thread/reqwest_http2_current_thread_concurrent_body_full_2048KB: Warming up for 3.0000 s
Warning: Unable to complete 10 samples in 5.0s. You may wish to increase target time to 40.9s.
server_multi_thread/reqwest_http2_current_thread_concurrent_body_full_2048KB
                        time:   [3.9569 s 4.0926 s 4.2343 s]
Found 2 outliers among 10 measurements (20.00%)
  1 (10.00%) low mild
  1 (10.00%) high mild
Benchmarking server_multi_thread/wreq_http2_current_thread_concurrent_body_stream_2048KB: Warming up for 3.0000 s
Warning: Unable to complete 10 samples in 5.0s. You may wish to increase target time to 25.5s.
server_multi_thread/wreq_http2_current_thread_concurrent_body_stream_2048KB
                        time:   [2.6368 s 2.7505 s 2.8722 s]
Benchmarking server_multi_thread/reqwest_http2_current_thread_concurrent_body_stream_2048KB: Warming up for 3.0000 s
Warning: Unable to complete 10 samples in 5.0s. You may wish to increase target time to 35.2s.
server_multi_thread/reqwest_http2_current_thread_concurrent_body_stream_2048KB
                        time:   [3.5269 s 3.7048 s 3.8969 s]
Found 1 outliers among 10 measurements (10.00%)
  1 (10.00%) high mild
Benchmarking server_multi_thread/wreq_http2_current_thread_sequential_body_full_4096KB: Warming up for 3.0000 s
Warning: Unable to complete 10 samples in 5.0s. You may wish to increase target time to 123.1s.
server_multi_thread/wreq_http2_current_thread_sequential_body_full_4096KB
                        time:   [11.287 s 11.541 s 11.783 s]
Benchmarking server_multi_thread/reqwest_http2_current_thread_sequential_body_full_4096KB: Warming up for 3.0000 s
Warning: Unable to complete 10 samples in 5.0s. You may wish to increase target time to 168.5s.
server_multi_thread/reqwest_http2_current_thread_sequential_body_full_4096KB
                        time:   [16.534 s 16.901 s 17.242 s]
Benchmarking server_multi_thread/wreq_http2_current_thread_sequential_body_stream_4096KB: Warming up for 3.0000 s
Warning: Unable to complete 10 samples in 5.0s. You may wish to increase target time to 121.2s.
server_multi_thread/wreq_http2_current_thread_sequential_body_stream_4096KB
                        time:   [11.380 s 11.792 s 12.183 s]
Benchmarking server_multi_thread/reqwest_http2_current_thread_sequential_body_stream_4096KB: Warming up for 3.0000 s
Warning: Unable to complete 10 samples in 5.0s. You may wish to increase target time to 146.6s.
server_multi_thread/reqwest_http2_current_thread_sequential_body_stream_4096KB
                        time:   [15.032 s 15.321 s 15.643 s]
Benchmarking server_multi_thread/wreq_http2_current_thread_concurrent_body_full_4096KB: Warming up for 3.0000 s
Warning: Unable to complete 10 samples in 5.0s. You may wish to increase target time to 48.1s.
server_multi_thread/wreq_http2_current_thread_concurrent_body_full_4096KB
                        time:   [5.0129 s 5.1564 s 5.3195 s]
Benchmarking server_multi_thread/reqwest_http2_current_thread_concurrent_body_full_4096KB: Warming up for 3.0000 s
Warning: Unable to complete 10 samples in 5.0s. You may wish to increase target time to 80.9s.
server_multi_thread/reqwest_http2_current_thread_concurrent_body_full_4096KB
                        time:   [7.6580 s 7.9183 s 8.1708 s]
Benchmarking server_multi_thread/wreq_http2_current_thread_concurrent_body_stream_4096KB: Warming up for 3.0000 s
Warning: Unable to complete 10 samples in 5.0s. You may wish to increase target time to 51.7s.
server_multi_thread/wreq_http2_current_thread_concurrent_body_stream_4096KB
                        time:   [5.3868 s 5.4805 s 5.5755 s]
Found 2 outliers among 10 measurements (20.00%)
  1 (10.00%) low mild
  1 (10.00%) high mild
Benchmarking server_multi_thread/reqwest_http2_current_thread_concurrent_body_stream_4096KB: Warming up for 3.0000 s
Warning: Unable to complete 10 samples in 5.0s. You may wish to increase target time to 70.2s.
server_multi_thread/reqwest_http2_current_thread_concurrent_body_stream_4096KB
                        time:   [7.2622 s 7.4469 s 7.6509 s]
server_multi_thread/wreq_http2_multi_thread_sequential_body_full_10KB
                        time:   [61.269 ms 65.118 ms 69.222 ms]
Found 1 outliers among 10 measurements (10.00%)
  1 (10.00%) high mild
server_multi_thread/reqwest_http2_multi_thread_sequential_body_full_10KB
                        time:   [60.207 ms 66.427 ms 72.138 ms]
server_multi_thread/wreq_http2_multi_thread_sequential_body_stream_10KB
                        time:   [262.79 ms 310.44 ms 354.40 ms]
Benchmarking server_multi_thread/reqwest_http2_multi_thread_sequential_body_stream_10KB: Warming up for 3.0000 s
Warning: Unable to complete 10 samples in 5.0s. You may wish to increase target time to 20.2s.
server_multi_thread/reqwest_http2_multi_thread_sequential_body_stream_10KB
                        time:   [2.0233 s 2.1286 s 2.2381 s]
server_multi_thread/wreq_http2_multi_thread_concurrent_body_full_10KB
                        time:   [19.703 ms 20.727 ms 21.613 ms]
Found 2 outliers among 10 measurements (20.00%)
  1 (10.00%) low severe
  1 (10.00%) high mild
server_multi_thread/reqwest_http2_multi_thread_concurrent_body_full_10KB
                        time:   [25.001 ms 27.192 ms 29.809 ms]
Found 1 outliers among 10 measurements (10.00%)
  1 (10.00%) high mild
server_multi_thread/wreq_http2_multi_thread_concurrent_body_stream_10KB
                        time:   [32.609 ms 36.740 ms 42.194 ms]
Found 1 outliers among 10 measurements (10.00%)
  1 (10.00%) high mild
server_multi_thread/reqwest_http2_multi_thread_concurrent_body_stream_10KB
                        time:   [31.495 ms 33.876 ms 35.886 ms]
Found 1 outliers among 10 measurements (10.00%)
  1 (10.00%) low mild
Benchmarking server_multi_thread/wreq_http2_multi_thread_sequential_body_full_64KB: Warming up for 3.0000 s
Warning: Unable to complete 10 samples in 5.0s. You may wish to increase target time to 13.9s.
server_multi_thread/wreq_http2_multi_thread_sequential_body_full_64KB
                        time:   [1.3615 s 1.4467 s 1.5377 s]
Found 2 outliers among 10 measurements (20.00%)
  1 (10.00%) low mild
  1 (10.00%) high mild
Benchmarking server_multi_thread/reqwest_http2_multi_thread_sequential_body_full_64KB: Warming up for 3.0000 s
Warning: Unable to complete 10 samples in 5.0s. You may wish to increase target time to 34.8s.
server_multi_thread/reqwest_http2_multi_thread_sequential_body_full_64KB
                        time:   [3.1211 s 3.2804 s 3.4386 s]
Benchmarking server_multi_thread/wreq_http2_multi_thread_sequential_body_stream_64KB: Warming up for 3.0000 s
Warning: Unable to complete 10 samples in 5.0s. You may wish to increase target time to 18.6s.
server_multi_thread/wreq_http2_multi_thread_sequential_body_stream_64KB
                        time:   [1.8337 s 1.8882 s 1.9444 s]
Benchmarking server_multi_thread/reqwest_http2_multi_thread_sequential_body_stream_64KB: Warming up for 3.0000 s
Warning: Unable to complete 10 samples in 5.0s. You may wish to increase target time to 79.9s.
server_multi_thread/reqwest_http2_multi_thread_sequential_body_stream_64KB
                        time:   [7.7475 s 7.8943 s 8.0367 s]
server_multi_thread/wreq_http2_multi_thread_concurrent_body_full_64KB
                        time:   [107.76 ms 121.99 ms 133.62 ms]
Found 1 outliers among 10 measurements (10.00%)
  1 (10.00%) low mild
server_multi_thread/reqwest_http2_multi_thread_concurrent_body_full_64KB
                        time:   [172.60 ms 191.22 ms 209.38 ms]
Found 2 outliers among 10 measurements (20.00%)
  1 (10.00%) low mild
  1 (10.00%) high mild
server_multi_thread/wreq_http2_multi_thread_concurrent_body_stream_64KB
                        time:   [133.61 ms 149.67 ms 171.40 ms]
Found 1 outliers among 10 measurements (10.00%)
  1 (10.00%) high severe
server_multi_thread/reqwest_http2_multi_thread_concurrent_body_stream_64KB
                        time:   [141.40 ms 151.78 ms 161.69 ms]
Benchmarking server_multi_thread/wreq_http2_multi_thread_sequential_body_full_256KB: Warming up for 3.0000 s
Warning: Unable to complete 10 samples in 5.0s. You may wish to increase target time to 43.9s.
server_multi_thread/wreq_http2_multi_thread_sequential_body_full_256KB
                        time:   [3.2947 s 3.4767 s 3.6868 s]
Found 1 outliers among 10 measurements (10.00%)
  1 (10.00%) high mild
Benchmarking server_multi_thread/reqwest_http2_multi_thread_sequential_body_full_256KB: Warming up for 3.0000 s
Warning: Unable to complete 10 samples in 5.0s. You may wish to increase target time to 95.4s.
server_multi_thread/reqwest_http2_multi_thread_sequential_body_full_256KB
                        time:   [9.5761 s 9.7117 s 9.8737 s]
Found 1 outliers among 10 measurements (10.00%)
  1 (10.00%) high mild
Benchmarking server_multi_thread/wreq_http2_multi_thread_sequential_body_stream_256KB: Warming up for 3.0000 s
Warning: Unable to complete 10 samples in 5.0s. You may wish to increase target time to 20.0s.
server_multi_thread/wreq_http2_multi_thread_sequential_body_stream_256KB
                        time:   [1.8489 s 2.0479 s 2.2753 s]
Found 1 outliers among 10 measurements (10.00%)
  1 (10.00%) high mild
Benchmarking server_multi_thread/reqwest_http2_multi_thread_sequential_body_stream_256KB: Warming up for 3.0000 s
Warning: Unable to complete 10 samples in 5.0s. You may wish to increase target time to 131.7s.
server_multi_thread/reqwest_http2_multi_thread_sequential_body_stream_256KB
                        time:   [12.093 s 12.362 s 12.669 s]
server_multi_thread/wreq_http2_multi_thread_concurrent_body_full_256KB
                        time:   [316.55 ms 351.58 ms 392.32 ms]
Benchmarking server_multi_thread/reqwest_http2_multi_thread_concurrent_body_full_256KB: Warming up for 3.0000 s
Warning: Unable to complete 10 samples in 5.0s. You may wish to increase target time to 8.0s.
server_multi_thread/reqwest_http2_multi_thread_concurrent_body_full_256KB
                        time:   [665.55 ms 766.49 ms 868.85 ms]
Benchmarking server_multi_thread/wreq_http2_multi_thread_concurrent_body_stream_256KB: Warming up for 3.0000 s
Warning: Unable to complete 10 samples in 5.0s. You may wish to increase target time to 5.0s.
server_multi_thread/wreq_http2_multi_thread_concurrent_body_stream_256KB
                        time:   [451.68 ms 499.49 ms 553.39 ms]
Benchmarking server_multi_thread/reqwest_http2_multi_thread_concurrent_body_stream_256KB: Warming up for 3.0000 s
Warning: Unable to complete 10 samples in 5.0s. You may wish to increase target time to 8.0s.
server_multi_thread/reqwest_http2_multi_thread_concurrent_body_stream_256KB
                        time:   [667.97 ms 736.27 ms 804.71 ms]
Benchmarking server_multi_thread/wreq_http2_multi_thread_sequential_body_full_1024KB: Warming up for 3.0000 s
Warning: Unable to complete 10 samples in 5.0s. You may wish to increase target time to 47.5s.
server_multi_thread/wreq_http2_multi_thread_sequential_body_full_1024KB
                        time:   [4.7328 s 4.9566 s 5.1968 s]
Benchmarking server_multi_thread/reqwest_http2_multi_thread_sequential_body_full_1024KB: Warming up for 3.0000 s
Warning: Unable to complete 10 samples in 5.0s. You may wish to increase target time to 75.4s.
server_multi_thread/reqwest_http2_multi_thread_sequential_body_full_1024KB
                        time:   [7.4369 s 7.8696 s 8.2935 s]
Benchmarking server_multi_thread/wreq_http2_multi_thread_sequential_body_stream_1024KB: Warming up for 3.0000 s
Warning: Unable to complete 10 samples in 5.0s. You may wish to increase target time to 65.0s.
server_multi_thread/wreq_http2_multi_thread_sequential_body_stream_1024KB
                        time:   [5.7847 s 5.9574 s 6.1370 s]
Benchmarking server_multi_thread/reqwest_http2_multi_thread_sequential_body_stream_1024KB: Warming up for 3.0000 s
Warning: Unable to complete 10 samples in 5.0s. You may wish to increase target time to 76.3s.
server_multi_thread/reqwest_http2_multi_thread_sequential_body_stream_1024KB
                        time:   [7.0665 s 7.4194 s 7.7989 s]
Benchmarking server_multi_thread/wreq_http2_multi_thread_concurrent_body_full_1024KB: Warming up for 3.0000 s
Warning: Unable to complete 10 samples in 5.0s. You may wish to increase target time to 12.5s.
server_multi_thread/wreq_http2_multi_thread_concurrent_body_full_1024KB
                        time:   [1.1862 s 1.2502 s 1.3263 s]
Benchmarking server_multi_thread/reqwest_http2_multi_thread_concurrent_body_full_1024KB: Warming up for 3.0000 s
Warning: Unable to complete 10 samples in 5.0s. You may wish to increase target time to 28.7s.
server_multi_thread/reqwest_http2_multi_thread_concurrent_body_full_1024KB
                        time:   [3.0705 s 3.1825 s 3.3277 s]
Found 1 outliers among 10 measurements (10.00%)
  1 (10.00%) high mild
Benchmarking server_multi_thread/wreq_http2_multi_thread_concurrent_body_stream_1024KB: Warming up for 3.0000 s
Warning: Unable to complete 10 samples in 5.0s. You may wish to increase target time to 17.5s.
server_multi_thread/wreq_http2_multi_thread_concurrent_body_stream_1024KB
                        time:   [1.7014 s 1.7547 s 1.8152 s]
Found 2 outliers among 10 measurements (20.00%)
  2 (20.00%) high mild
Benchmarking server_multi_thread/reqwest_http2_multi_thread_concurrent_body_stream_1024KB: Warming up for 3.0000 s
Warning: Unable to complete 10 samples in 5.0s. You may wish to increase target time to 28.5s.
server_multi_thread/reqwest_http2_multi_thread_concurrent_body_stream_1024KB
                        time:   [2.7357 s 2.8948 s 3.0524 s]
Found 2 outliers among 10 measurements (20.00%)
  1 (10.00%) low mild
  1 (10.00%) high mild
Benchmarking server_multi_thread/wreq_http2_multi_thread_sequential_body_full_2048KB: Warming up for 3.0000 s
Warning: Unable to complete 10 samples in 5.0s. You may wish to increase target time to 81.1s.
server_multi_thread/wreq_http2_multi_thread_sequential_body_full_2048KB
                        time:   [8.1226 s 8.3234 s 8.5559 s]
Found 1 outliers among 10 measurements (10.00%)
  1 (10.00%) high mild
Benchmarking server_multi_thread/reqwest_http2_multi_thread_sequential_body_full_2048KB: Warming up for 3.0000 s
Warning: Unable to complete 10 samples in 5.0s. You may wish to increase target time to 142.6s.
server_multi_thread/reqwest_http2_multi_thread_sequential_body_full_2048KB
                        time:   [14.397 s 14.818 s 15.205 s]
Benchmarking server_multi_thread/wreq_http2_multi_thread_sequential_body_stream_2048KB: Warming up for 3.0000 s
Warning: Unable to complete 10 samples in 5.0s. You may wish to increase target time to 70.5s.
server_multi_thread/wreq_http2_multi_thread_sequential_body_stream_2048KB
                        time:   [7.4372 s 7.7958 s 8.1954 s]
Found 1 outliers among 10 measurements (10.00%)
  1 (10.00%) high mild
Benchmarking server_multi_thread/reqwest_http2_multi_thread_sequential_body_stream_2048KB: Warming up for 3.0000 s
Warning: Unable to complete 10 samples in 5.0s. You may wish to increase target time to 143.1s.
server_multi_thread/reqwest_http2_multi_thread_sequential_body_stream_2048KB
                        time:   [13.852 s 14.418 s 15.023 s]
Benchmarking server_multi_thread/wreq_http2_multi_thread_concurrent_body_full_2048KB: Warming up for 3.0000 s
Warning: Unable to complete 10 samples in 5.0s. You may wish to increase target time to 25.4s.
server_multi_thread/wreq_http2_multi_thread_concurrent_body_full_2048KB
                        time:   [2.4479 s 2.5597 s 2.6709 s]
Benchmarking server_multi_thread/reqwest_http2_multi_thread_concurrent_body_full_2048KB: Warming up for 3.0000 s
Warning: Unable to complete 10 samples in 5.0s. You may wish to increase target time to 54.6s.
server_multi_thread/reqwest_http2_multi_thread_concurrent_body_full_2048KB
                        time:   [5.3463 s 5.6808 s 6.0049 s]
Benchmarking server_multi_thread/wreq_http2_multi_thread_concurrent_body_stream_2048KB: Warming up for 3.0000 s
Warning: Unable to complete 10 samples in 5.0s. You may wish to increase target time to 35.4s.
server_multi_thread/wreq_http2_multi_thread_concurrent_body_stream_2048KB
                        time:   [3.4953 s 3.5687 s 3.6485 s]
Found 2 outliers among 10 measurements (20.00%)
  1 (10.00%) low mild
  1 (10.00%) high mild
Benchmarking server_multi_thread/reqwest_http2_multi_thread_concurrent_body_stream_2048KB: Warming up for 3.0000 s
Warning: Unable to complete 10 samples in 5.0s. You may wish to increase target time to 53.0s.
server_multi_thread/reqwest_http2_multi_thread_concurrent_body_stream_2048KB
Benchmarking server_multi_thread/wreq_http2_multi_thread_sequential_body_full_4096KB: Warming up for 3.0000 s
Warning: Unable to complete 10 samples in 5.0s. You may wish to increase target time to 141.7s.
server_multi_thread/wreq_http2_multi_thread_sequential_body_full_4096KB
                        time:   [13.203 s 13.458 s 13.700 s]
Benchmarking server_multi_thread/reqwest_http2_multi_thread_sequential_body_full_4096KB: Warming up for 3.0000 s
Warning: Unable to complete 10 samples in 5.0s. You may wish to increase target time to 246.8s.
server_multi_thread/reqwest_http2_multi_thread_sequential_body_full_4096KB
                        time:   [23.137 s 23.605 s 24.076 s]
Benchmarking server_multi_thread/wreq_http2_multi_thread_sequential_body_stream_4096KB: Warming up for 3.0000 s
Warning: Unable to complete 10 samples in 5.0s. You may wish to increase target time to 100.8s.
server_multi_thread/wreq_http2_multi_thread_sequential_body_stream_4096KB
                        time:   [10.041 s 10.413 s 10.789 s]
Benchmarking server_multi_thread/reqwest_http2_multi_thread_sequential_body_stream_4096KB: Warming up for 3.0000 s
Warning: Unable to complete 10 samples in 5.0s. You may wish to increase target time to 190.9s.
server_multi_thread/reqwest_http2_multi_thread_sequential_body_stream_4096KB
                        time:   [18.102 s 18.489 s 18.866 s]
Benchmarking server_multi_thread/wreq_http2_multi_thread_concurrent_body_full_4096KB: Warming up for 3.0000 s
Warning: Unable to complete 10 samples in 5.0s. You may wish to increase target time to 45.3s.
server_multi_thread/wreq_http2_multi_thread_concurrent_body_full_4096KB
                        time:   [4.8182 s 4.9236 s 5.0387 s]
Benchmarking server_multi_thread/reqwest_http2_multi_thread_concurrent_body_full_4096KB: Warming up for 3.0000 s
Warning: Unable to complete 10 samples in 5.0s. You may wish to increase target time to 88.2s.
server_multi_thread/reqwest_http2_multi_thread_concurrent_body_full_4096KB
                        time:   [10.311 s 10.738 s 11.197 s]
Benchmarking server_multi_thread/wreq_http2_multi_thread_concurrent_body_stream_4096KB: Warming up for 3.0000 s
Warning: Unable to complete 10 samples in 5.0s. You may wish to increase target time to 69.1s.
server_multi_thread/wreq_http2_multi_thread_concurrent_body_stream_4096KB
                        time:   [6.7544 s 6.9546 s 7.1400 s]
Benchmarking server_multi_thread/reqwest_http2_multi_thread_concurrent_body_stream_4096KB: Warming up for 3.0000 s
Warning: Unable to complete 10 samples in 5.0s. You may wish to increase target time to 109.1s.
server_multi_thread/reqwest_http2_multi_thread_concurrent_body_stream_4096KB
                        time:   [11.793 s 12.019 s 12.234 s]

@gemini-code-assist
Copy link
Contributor

Summary of Changes

Hello @0x676e67, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request significantly enhances the project's benchmarking capabilities by adding new tests that evaluate the performance of HTTP/1 and HTTP/2 requests with diverse body sizes and handling strategies. The changes centralize the benchmarking infrastructure, making it more modular and extensible, and provide a clearer picture of how different body types (full vs. streaming) impact performance for both sequential and concurrent operations.

Highlights

  • Expanded Benchmarking Suite: Introduced comprehensive benchmarks for both full and streaming request/response bodies across various sizes (10KB to 4MB) for HTTP/1 and HTTP/2 protocols.
  • Benchmarking Logic Centralization: Refactored the core benchmarking logic into a new bench/support/bench.rs module, making the http1.rs and http2.rs benchmark files more concise and reusable.
  • Client-Side Body Handling: Updated client-side benchmarking to test both wreq and reqwest clients with different body types (full vs. streaming) and sizes, including sequential and concurrent request patterns.
  • Server-Side Echoing: Modified the benchmark server to echo the request body back to the client, enabling accurate measurement of body transfer performance.
  • Dependency Feature Management: Adjusted Cargo.toml to explicitly define required-features for benchmark targets, ensuring that specific features like http2 and stream are enabled only when needed.
Changelog
  • Cargo.toml
    • Removed the http2 feature from the default reqwest dependency.
    • Added required-features for http1 and http2 benchmark targets to specify wreq/stream, reqwest/stream, and reqwest/http2.
  • bench/http1.rs
    • Refactored to import and utilize the new bench module for running benchmarks.
    • Removed the run_benches function and direct calls to bench_wreq and bench_reqwest.
    • Updated bench_server_single_thread and bench_server_multi_thread to call the new bench module's functions.
    • Adjusted Criterion configuration to use sample_size(10) instead of measurement_time(Duration::from_secs(10)).
  • bench/http2.rs
    • Refactored to import and utilize the new bench module for running benchmarks.
    • Removed the run_benches function and direct calls to bench_wreq and bench_reqwest.
    • Updated bench_server_single_thread and bench_server_multi_thread to call the new bench module's functions.
    • Adjusted Criterion configuration to use sample_size(10) instead of measurement_time(Duration::from_secs(10)).
  • bench/support.rs
    • Added a new public module bench.
    • Implemented the Display trait for the HttpMode enum to provide string representations.
  • bench/support/bench.rs
    • Added a new file containing the core benchmarking logic.
    • Defined NUM_REQUESTS_TO_SEND, CONCURRENT_LIMIT, CURRENT_THREAD_LABEL, and MULTI_THREAD_LABEL constants.
    • Introduced BODY_CASES static array to define various body sizes for testing (10KB to 4MB).
    • Implemented run_benches to iterate through BODY_CASES and execute sequential and concurrent tests for both full and streaming bodies.
    • Provided bench_server_single_thread and bench_server_multi_thread functions to set up and run benchmarks against different server configurations.
  • bench/support/client.rs
    • Introduced helper functions box_err, create_wreq_client, create_reqwest_client for client setup and error handling.
    • Added wreq_body_assert and reqwest_body_assert for verifying response body sizes.
    • Implemented stream_from_static to create a stream from a static byte slice.
    • Added wreq_body and reqwest_body functions to create wreq::Body and reqwest::Body instances for full or streaming bodies.
    • Refactored wreq_send_requests and reqwest_send_requests into wreq_requests_sequential and reqwest_requests_sequential to include body and stream parameters.
    • Refactored wreq_send_requests_concurrent and reqwest_send_requests_concurrent into wreq_requests_concurrent and reqwest_requests_concurrent to include body and stream parameters and return Result.
    • Introduced crate_name helper function to extract crate names for benchmark labels.
    • Replaced bench_wreq and bench_reqwest with a unified bench_both_clients function, which now handles both client types, body types (full/stream), and sizes.
  • bench/support/server.rs
    • Removed bytes::Bytes, http_body_util::BodyExt, Full, and BoxBody imports.
    • Updated the with_server function signature to return Result<(), Box<dyn Error>> and propagate errors from the closure.
    • Simplified the handle_request asynchronous function to directly echo the incoming request body as the response body, removing the fixed 'Hello, world!' response.
Activity
  • The pull request description includes extensive benchmark results from running the newly added benchmarks on a Windows 11 Pro system with an AMD Ryzen 9 9950X CPU and NVIDIA GeForce RTX 5070 GPU. These results cover various body sizes (10KB to 4MB) and configurations (single-thread/multi-thread server, current-thread/multi-thread client, sequential/concurrent requests, full/stream bodies) for both wreq and reqwest clients over HTTP/2. The author noted that running the full bench takes hours and decided to stop for now.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

@0x676e67
Copy link
Owner Author

0x676e67 commented Feb 15, 2026

full log: bench.txt

Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces significant enhancements to the benchmark suite by adding benchmarks for full and streaming request bodies. The changes include a major refactoring to abstract common benchmark logic, which greatly improves maintainability and reduces code duplication. The error handling has also been made more robust. My feedback focuses on further improving the efficiency and robustness of the new benchmark setup.

@0x676e67 0x676e67 merged commit 0186719 into main Feb 15, 2026
23 checks passed
@0x676e67 0x676e67 deleted the bench branch February 15, 2026 13:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

Comments