libmicrohttpd
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [libmicrohttpd] Any HTTP Performance Benchmark Comparison for Microh


From: Evgeny Grin
Subject: Re: [libmicrohttpd] Any HTTP Performance Benchmark Comparison for Microhttpd with Go/Nodejs HTTP Servers
Date: Tue, 20 Jun 2023 20:39:02 +0300
User-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.12.0

Hi Forrest,

The real benchmark-testing of web-servers is a tricky thing.
You should consider:
* real-live scenarios. Ideally it should be run over the real network, because the loopback traffic is handled differently by kernels. * very fast client. Ideally very dumb. Otherwise you may test your client performance, not the server performance. * Multiple scenarios instead of single one: small/large requests with small/large responses (4 combinations), single request per connection / multiple requests per connections. They all have real-world usage and they may have different levels of performance. * Measure different parameters: the latency of the first response, the latency of the next responses, the total throughput in terms of number of requests per second and number of bytes per second. They are all important for different users. * Test with single thread of the requests and with multiple threads of the requests. * Check amount of used system resources. For some users they could be critical. * Use different compiler and compiler settings (when applicable). The '-O3' may have worse speed compared to '-O2'. LTO typically improve the results, but could have negative effect as well. * Analyse measured data not only be averaging, but also use 95-percentile for min/max values. * Repeat the same tests on several platforms, for example on GNU/Linux, FreeBSD and W32.

For the client I have the initial framework partially implemented in src/microhttpd/test_client_put_stop.c, however it does not ready for the response testing.

The article has a link to third-party MHD mirror. The the moment of article date the mirror had 5 years old version. Currently MHD is optimised heavily to minimize amount of system calls (which are costly with context switching). The minimal example used in test is optimised for simplicity, not for the performance.

Unfortunately I don't have ready-to-use recipe for the proper testing. :)

--
Evgeny


On 20.06.2023 17:50, lingweicai via libmicrohttpd wrote:
Dear Experts,


I am going to develop a Web UI with Microhttpd, and to write a technical paper. I want to show the high performance of microhttpd, but I did not find any good supporting information on my thoughts, this link https://tech.ssut.me/http-server-benchmark/ <https://tech.ssut.me/http-server-benchmark/>   did not show good performance of microhttpd.  Who could please advise if there any performance benchmark comparison for HTTP servers, such as microhttpd vs go vs go (grpc/protobuf) vs nodejs ?


Thanks,

Forrest Ling




<https://a.app.qq.com/o/simple.jsp?pkgname=com.sohu.mail.client.cordova>



Attachment: OpenPGP_0x460A317C3326D2AE.asc
Description: OpenPGP public key

Attachment: OpenPGP_signature
Description: OpenPGP digital signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]