无聊假设下,linux下,用户态,返回 hello world 的http服务器,理论上最快的方式是什么呢?
我跟同事开玩笑说,如果内核 sk_buffer 里边的data 可以共享,那么只需要把 "HTTP1/1 200 OK\r\nContent-Length:12\r\nConnection: Close\r\n\r\nhello, world\r\n\r\n" 复制一次到内核,以后每遇到一个请求,只需要一次 write() 调用就可以直接返回了。。
不知道linux下socket有没有zerocopy 数据的机制?
sendfile是file fd -> socket fd,但是我们这里只有字符串,没有文件fd
splice() 也是需要两个fd 的。我觉得fd都多余了可以不要了。
不知道我YY得对不对?大家一起来YY一下 http的hello world,应该怎么才能称霸跑分榜呢?