the performance of server written by libev, when the client just do "connect" and "close"

fatmck fatmck at 163.com
Thu Nov 24 09:15:30 CET 2011


I cant explain why you test is so slow. But usually, we use socket in 
non-blocking mode.
On server side, you should watch whether the listening socket is 
readable,. when it's readable, you can non-blocking accept().
On client side, you should watch write event on the connecting socket. 
when socket is writeable, it means connect() finished.
I write a simple client side app in blocking mode which connecting to my 
server(using libev) in a for loop.  result shows that performance is 
much better than yours.


client side source code:

         int total_count = 1024, connected_count=0, connect_error_count=0;
         struct sockaddr_in s_in_;
         if(SOCKET_FAIL(util_sock_set_addr(&s_in_, "127.0.0.1", 1080)))
             return -1;
         double start_time = util_precise_time();
         int left_count = total_count;
         while(left_count>0)
         {
             SOCKET fd = util_tcp_sock();
             if(INVALID_SOCKET!=fd)
             {
                 if(SOCKET_SUCCESS(util_sock_connect(fd, &s_in_)))
                 {
                     ++connected_count;
                     std::cout << "No." << connected_count << "
    connected" << std::endl;
                 }
                 else
                 {
                     ++connect_error_count;
                     std::cout << util_strerr(util_errno()) << std::endl;
                 }
                 close(fd);
             }
             --left_count;
         }
         double end_time = util_precise_time();
         std::cout << "connected count : " << connected_count << std::endl;
         std::cout << "connect_error count : " << connect_error_count <<
    std::endl;
         std::cout << "total time used : " << end_time-start_time <<
    std::endl;
         std::cout << "avg: " << (end_time-start_time)/total_count <<
    std::endl;





Output:

    connected count : 1024
    connect_error count : 0
    total time used : 0.052923
    avg: 5.16826e-05

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.schmorp.de/pipermail/libev/attachments/20111124/689b732c/attachment-0001.html>


More information about the libev mailing list