Hi,
I did a performance test of HTTP/2 and its comparison with HTTP/1.1 and I
would like to share my results with you.

I wrote a Python script [1] to download 100 artifacts in parallel using
asynchronous HTTP client supporting both HTTP/1.1 and HTTP/2. I chose 100
artifacts [2] from Maven Central, which were downloaded when I did a clean
build of one of my projects.

All 100 artifacts were downloaded using HTTP/1.1 and also HTTP/2 and I
stored the results in this file [3]. I did 10 experiments and measured its
performance. In the middle I switch the order of HTTP/1.1 and HTTP/2
requests to avoid a possible bias. I run it from my laptop connected to 160
Mbit/s network.

The experiments showed massive performance improvements when using HTTP/2
instead of HTTP/1.1
*:*

   - *The average download time using HTTP/1.1 was 3753.7 ms and using
   HTTP/2 971.8 ms* [4]


   - *In average the artifacts were downloaded 3.86 times faster using
   HTTP/2 than using HTTP/1.1* [5]


Kuba

[1]: https://github.com/jbartece/http2performance/blob/main/http2PerfTest.py
[2]: https://github.com/jbartece/http2performance/blob/main/centralUrls.txt
[3]: https://github.com/jbartece/http2performance/blob/main/testResults.txt
[4]:
https://github.com/jbartece/http2performance/blob/main/finalResults.txt#L26
[5]:
https://github.com/jbartece/http2performance/blob/main/finalResults.txt#L32


On Tue, Oct 27, 2020 at 8:42 AM Jakub Bartecek <jbart...@redhat.com> wrote:

> I'll do some measurements and share the results with you. If it turns out
> that it is worth the effort, how much work does it require? I'm considering
> contributing it to Maven (or someone from my team).
>
> If it is contributed today, when can it be in an official Maven release?
>
> On Mon, Oct 26, 2020 at 7:09 PM Michael Osipov <micha...@apache.org>
> wrote:
>
>> Am 2020-10-26 um 15:01 schrieb Jakub Bartecek:
>> > On Sun, Oct 25, 2020 at 10:25 AM Michael Osipov <micha...@apache.org>
>> wrote:
>> >
>> >> Am 2020-10-23 um 10:08 schrieb Jakub Bartecek:
>> >>> Hello,
>> >>> I'd like to ask if it is possible to turn on HTTP/2 support in Maven.
>> I
>> >>> haven't found such an option.
>> >>>
>> >>> If not: Are there any plans to add the support?
>> >>
>> >> There is nothing to turn on and that would be unwise, something like
>> >> this should be done through ALPN.
>> >>
>> >> Maven uses by default Wagon HTTP Transport on top of Apache
>> >> HttpComponents 4.5.x. Beginning with Apache HttpComponent 5.0 HTTP/2 is
>> >> supported. One would need to write a new (updated) HTTP Transport to
>> >> move all gone.
>> >> There is one crucial issue needs to be solved first: HTTPCORE-626. Also
>> >> read the related discussion [1].
>> >>
>> >> Is there anything explicitly you expect from HTTP/2 compared to
>> >> HTTP/1.1? I have done a lot of internal improvements to Wagon HTTP this
>> >> year which covers a lot of use cases.
>> >>
>> >> Have you done testing with curl which proves some kind of improvement?
>> >> I have talked about possible benefits of HTTP/2 in corporate
>> >> environments with jfclere@ and he sees little benefit because when you
>> >> have a repo manager in house, you have (a) a gigabit connection and (b)
>> >> minimal hops between client and repo manager.
>> >>
>> >
>> > Thanks for the clarification.
>> >
>> > I wanted to test out if there are significant performance improvements
>> with
>> > HTTP/2 (which I hoped there could be),
>> > but I haven't done any measurements by simulating it with curl. My first
>> > idea was to try it with Maven directly
>>
>> Please do that first to have any numbers to compare. I don't see to put
>> any effort into something which will deliver a single digit percent
>> improvement given the amount of work.
>>
>> Share numbers when you are ready.
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscr...@maven.apache.org
>> For additional commands, e-mail: users-h...@maven.apache.org
>>
>>

Reply via email to