Hi,

Thanks a lot. Is there any significant performance impact when it runs in
this mode ?

Has anyone compared its performance against "mongoose " ?

I''m evaluating a http library for my C++ based application microservices
.  I am evaluating libraries that can provide our C++ workers with native
HTTP capabilities.


I’m defining native as:

   - No additional threads other than those spawned by the application when
   it chooses to use blocking calls (entirely optional)
   - No additional queueing
   - Native sockets interface with full use of listen, accept, bind,
   connect, recv, send.


Do you think libmicrohttpd is the best choice or is there any better
alternatives for me ?

Please advise.

thanks, santos

On Fri, Aug 24, 2018 at 12:15 AM, silvioprog <[email protected]> wrote:

> Hello Santos.
>
> Yes, you can use your own main loop. Please see:
>
> "*The fourth threading model (used when no specific flag is given), uses
> no threads. Instead, the main application must (periodically) request file
> descriptor sets from MHD, perform a select call and then call MHD_run.
> MHD_run will then process HTTP requests as usual and return. MHD_run is
> guaranteed to not block; however, access handlers and response processing
> callbacks that it invokes may block. This mode is useful if a
> single-threaded implementation is desired and in particular if the main
> application already uses a select loop for its processing.*" More ...
> <https://www.gnu.org/software/libmicrohttpd/>
>
> Enjoy MHD! ☺
>
> On Thu, Aug 23, 2018 at 3:36 PM Santos Das <[email protected]> wrote:
>
>> Hi,
>>
>> Thank you for the quick reply. I have one more question, please help in
>> clarifying -
>>
>> Can "libmicrohttpd" run as a part of the application event loop or is it 
>> *mandatory
>> *for the  "libmicrohttpd"  to have its own event loop?
>>
>> thanks, santos
>>
>> On Thu, Aug 23, 2018 at 11:58 PM, Christian Grothoff <[email protected]
>> > wrote:
>>
>>> On 08/23/2018 06:21 PM, Santos Das wrote:
>>> > Hi,
>>> >
>>> > Can anyone please confirm if libmicrohttpd supports the Async handling?
>>>
>>> Yes, it supports asynchronous processing.
>>>
>>> > Also, any information on the performance of libmicrohttps will be
>>> useful.
>>>
>>> Let's just say if used properly, it will never be anywhere near the
>>> bottleneck. We know people running 100,000 requests/s on a single system
>>> with MHD years ago. Quite likely to do more today, but very difficult to
>>> test: when benchmarking, you will always be benchmarking your clients,
>>> your network or your application logic long before hitting any MHD
>>> threshold (on sane operating systems).
>>>
>>>
>>
>
> --
> Silvio Clécio
>

Reply via email to