Reading this zero copy article,
Does Zero-copy exist in开发者_如何学Go Windows OS (server 2003, 2008, 2008 R2) ?
Yes, it is supported via the TransmitFile
API.
I'm pretty sure that IIS uses this as well.
Whether or not this method does real zero-copy (i.e. doesn't even copy from the file buffers to the socket buffers) is not explicitly mentioned in the documentation. But given the fact that this method is defined in a way that definitely makes it possible, I'd be highly surprised if this were not the case.
The closest the documentation comes to stating it clearly is this paragraph:
[...]
TransmitFile
achieves its performance gains by sending data directly from the file cache.
精彩评论