Skip to content

curl ngtcp2 performance regression on fast links #15267

Description

@vranem1

I did this

Starting from this change: 97c0f89bd I observe slight performance improvement on slower links, but also a significant performance regression on fast links when downloading an http/3 resource.

Steps to reproduce:

  1. Build curl with http/3 support from these component version:
    OpenSSL: OpenSSL_1_1_1w-37-g612d8e44d6
    nghttp3: v1.6.0-1-g7f40779
    ngtcp2: v1.8.0-1-g8d5ab787
    nghttp2: v1.63.0-15-g4202608e
    curl: curl-8_10_1-146-g97c0f89bd

  2. Build a second binary from the same components, but with previous curl git commit

  3. Setup a http3 server and a bandwith limit using netem with the following params:
    rate=1Gbit ,rtt=2ms, loss=0 , jitter=0

  4. download 100MB file and measure the time

I expected the following

The download duration with older binary is approximatly 3s, but 100s with the newer one.

The faster the emulated link is the bigger regression we get. for example on 1.5GBit line the regression is 1000% !

curl/libcurl version

curl 8.10 and newer (tested with the main branch today)

operating system

Ubuntu 22.04

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions