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 >> >>