Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-105043

HTTP2 downloads can be very slow

    XMLWordPrintable

Details

    • All
    • 9540a4eb90 (qt/qtbase/dev) 9540a4eb90 (qt/tqtc-qtbase/dev) 9fd40c04d1 (qt/qtbase/6.4) 9fd40c04d1 (qt/tqtc-qtbase/6.4) 825ef509c5 (qt/qtbase/6.3) 825ef509c5 (qt/tqtc-qtbase/6.3) 118558c5b2 (qt/tqtc-qtbase/6.2)

    Description

      First off: the numbers here come from testing on a 400MBit/s fiber line, but the actual slow-down is independent of the Internet speed.

      Please see the attached test program that uses QNAM to download a ~60MB file from a specific HTTP server. With no special config, the download in 6.2.4, 6.3.1 and 6.4.0 is very slow at <200 KB/s.

      Setting QNetworkRequest::Http2AllowedAttribute to false speeds the download up to where it was before with Qt 5: roughly 4-5MB/s.

      Just build it, run it and watch the output. You can just uncomment the setAttribute line to test without HTTP2.

      I could only reproduce this problem with this specific server at ldraw.org. Please be gentle when testing and don't hammer their server like crazy: this is a non-profit organization run by volunteers

      For comparison curl in http2 mode is downloading at around 5-8MB/s:

      curl -o /dev/null --http2 'https://www.ldraw.org/library/updates/complete.zip'
      
       
        % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                       Dload  Upload   Total   Spent    Left  Speed
      100 63.6M  100 63.6M    0     0  5651k      0  0:00:11  0:00:11 --:--:-- 6075k
       

       

      Attachments

        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

        Activity

          People

            tpochep Timur Pocheptsov
            rgriebl Robert Griebl
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: