From: Dan K. <da...@ke...> - 2002-11-01 18:25:32
|
Davide Libenzi wrote: > On Fri, 1 Nov 2002, Dan Kegel wrote: > >>Davide Libenzi wrote: >> >>>>Do you avoid the cost of epoll_ctl() per new fd? >>> >>>Jamie, the cost of epoll_ctl(2) is minimal/zero compared with the average >>>life of a connection. >> >>Depends on the workload. Where I work, the http client I'm writing >>has to perform extremely well even on 1 byte files with HTTP 1.0. >>Minimizing system calls is suprisingly important - even >>a gettimeofday hurts. > > Dan, is it _one_ gettimeofday() or a gettimeofday() inside a loop ? > gettimeofday() is of the order of few microseconds ... and If your clients > works with anything alse than a loopback, few microseconds shouldn't weigh > in much compared to connect/send/recv/close on a network connection. It is > not much the fact that you transfer one byte, it's the whole TCP handshake > cost that weighs in. The scenario is: we're doing load testing of http products, and for various reasons, we want line-rate traffic with the smallest possible message size. i.e. we want the maximum number of HTTP requests/responses per second. Hence the 1 byte payloads. A single system call on the slowish embedded processor I'm using has a suprisingly large impact on the number of http gets per second I can do. A 1% increase in speed is worth it for me! So please do try to reduce the number of syscalls needed to handle very short TCP sessions, if possible. - Dan |